博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
matlab练习程序(纹理合成)
阅读量:6654 次
发布时间:2019-06-25

本文共 694 字,大约阅读时间需要 2 分钟。

关于纹理合成最经典的论文应该就数的这篇论文了,引用量近2000。

这里的合成是基于样例的,就是先有一个小的纹理图像,然后合成一个大的。

我个人的理解是,先产生一个大的随机图像,然后对随机图像中每个像素及其邻域像素和小的纹理图像做对比,找出随机图像当前邻域和小的纹理图像最接近的邻域,然后将小的纹理图像最接近的像素赋值给大的随机图像。这样每处理一个随机图像中的像素,就需要遍历小的纹理图像的所有像素,所以运行时间是很慢的。

先看下效果:

小的纹理图像:

合成的纹理图像:

matlab代码如下:

clear all;close all;clc;mask=mat2gray(imread('wen.jpg'));   %小的纹理图像[m n]=size(mask);imgn=mat2gray(rand(256,256));   %最终需要的大的纹理图像,现在是随机图像w=2;            %L邻域长的半径I=[1 1 1 1 1;   1 1 1 1 1;   1 1 0 0 0];  %L邻域,这里是5*3的,当然也可以是7*4或9*5的for i=1+w:256    for j=1+w:256-w                mi=inf;        for p=1+w:m            for q=1+w:n-w                tmp=mean2(abs(imgn(i-w:i,j-w:j+w).*I-mask(p-w:p,q-w:q+w).*I));                             if tmp

参考博客:

转载地址:http://yuxto.baihongyu.com/

你可能感兴趣的文章
一个关于编码的实验(C#写的记事本文档,在Linux下用C++读取)
查看>>
poj3080(串-KMP+枚举)
查看>>
MySQL 数据库中日期与时间函数 FROM_UNIXTIME(), UNIX_TIME() ...
查看>>
Android运行时出现的 java.lang.VerifyError 异常解决方案
查看>>
正则表达式测试工具
查看>>
centos安装 7zip
查看>>
关于无线由器限速的问题
查看>>
"101"比"1203"大的时候.java中的比较办法和Oracle中的比较办法!!
查看>>
马云经典语录--你最喜欢哪一句
查看>>
Scenario 6 –HP C7000 Virtual Connect FlexFabric SUS with A/A Uplinks, 8
查看>>
Java 框架新贵入驻 TechEmpower Framework Benchmark
查看>>
CentOS6.3 64位安装wine出错,牛人帮帮忙
查看>>
js获取textarea标签中的换行符和空格。
查看>>
国内的Maven服务器
查看>>
C# winform DataGridView 的18种常见属性
查看>>
Cygwin的安装、配置与调整
查看>>
MySQL存储过程
查看>>
做有中国特色的程序员
查看>>
JVM【第九回】:【OutOfMemoryError异常之本机直接内存溢出】
查看>>
Angular
查看>>