编号:B738
大小:6.22M
环境:Matlab2020B
简介:这是Efros-Leung算法的Matlab实现,用于通过非参数采样进行纹理合成。
用法
以下是如何使用synthe_texture函数的示例(来自synthe_ttexture_test.m):
input_image = im2double(imread(‘161.png’));
output_image = synthesize_texture(input_image, 256, 256, 9);
imwrite(output_image, ‘result.png’);
synthesize_texture的参数如下:
function output_image = synthesize_texture(input_image, output_rows, output_cols, window_size)
输入
input_image:包含要合成的纹理样本的图像
output_rows:合成图像中所需的行数
output_cols:合成图像中所需的列数
window_size:用于扫描输入图像以查找与正在合成的区域最匹配的补丁的窗口的边长
输出
output_image:包含合成纹理的(output_rows x output_cols)图像
一些例子
自定义纹理
经典纹理
示例格式
examples文件夹包含两个子文件夹,ClassicTextures和MyTextures。ClassicTextures包含在Efros Leung原始论文中使用的一些纹理样本上使用的此实现的示例。MyTextures包含使用我自己的纹理示例的示例。
对于每个示例,输入文件都以图片中的材质命名,相应的输出文件包含输入文件的名称,加上“结果”和“窗口”,然后是用于该示例的窗口大小。例如,输入文件“bark1.png”具有输出文件“bark1_result_window_9.png”,显示窗口大小为9。
实施说明
为了用相同的代码处理灰度图像和彩色图像,此实现将通道垂直堆叠,以便始终仅使用列矢量执行计算。
在这个脚本中,候选面片在开始时被转换为堆叠表示,并且在所有距离计算中都保持这种方式。当观察要合成的单个像素时,该像素周围的邻域会通过通道堆叠重塑为一列,并在有候选补丁的情况下复制多次。需要注意的是,即使有多个颜色通道,显示哪些像素已被填充的掩模仍然是二维的。遮罩适用于所有颜色通道,因此为了向量化代码,遮罩会垂直复制通道的次数:
mask_vec = repmat(mask_vec, size(candidates, 3), 1);
运行展示
配套文件
我们提供完整项目文件清单如下:
文件目录
├ 1.项目源码
├ 2.运行截图
└ 3.演示视频
2. 分享目的仅供大家学习和交流,请不要用于商业用途!
3. 如果你也有好源码或者文档,可以与我们交换,分享有积分奖励和额外收入!
4. 本站提供的源码、文档等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"www.2zcode.com",如遇到无法解压的请联系管理员!
8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
声明:网站内的所有源码都经过我们亲自测试,均可以正常使用.
索炜达.猿创 » 用Matlab实现Efros-Leung纹理的非参数采样合成
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 你们有qq群吗怎么加入?