首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在matlab中使用滑动窗口实现列到块

在matlab中使用滑动窗口实现列到块
EN

Stack Overflow用户
提问于 2011-04-19 15:22:11
回答 3查看 2.8K关注 0票数 0

我使用matlab中的im2col滑动窗口将输入图像块转换为列,然后使用col2im进行反向转换,但输出的图像与输入图像不同。如何恢复输入图像?有谁能帮帮我。

以下是代码

代码语言:javascript
运行
复制
in=imread('tire.tif');
[mm nn]=size(in);
m=8;n=8;
figure,imshow(in);
i1=im2col(in,[8 8],'sliding');
i2 = reshape( sum(i1),mm-m+1,nn-n+1);
out=col2im(i2,[m n],[mm nn],'sliding');
figure,imshow(out,[]);

先谢谢你...

EN

回答 3

Stack Overflow用户

发布于 2011-04-19 22:15:49

您没有具体说明问题是什么,但我看到了一些潜在的来源:

  1. 您不应该期望输出与输入完全相同,因为您将用8x8邻域中的像素总和替换每个像素值。此外,由于IM2COL'sliding'选项不会用零填充数组来为边缘附近的像素创建邻域,因此结果图像在每个方向(即[m-1 n-1])上将收缩7个像素。
  2. 这两行是多余的:

i2 = reshape( sum(i1),mm-m+1,nn-n+1);out=col2im(i2,m n,mm nn,‘滑动’);

您只需要其中之一,而不是两个都需要:

%#使用这个: out = reshape(sum(i1),mm-m+1,nn-n+1);%# OR this: out = col2im(sum(i1),m n,mm nn ),'sliding');

  • Image data in MATLAB通常是'uint8'类型,这意味着每个像素都表示为一个范围从0到255的无符号8位整数。假设这就是in,当您执行sum操作时,您将隐式地将其转换为'double'类型(因为一个无符号的8位整数可能不足以容纳总和)。当图像像素值使用double类型表示时,像素值的范围应在0到1之间,因此您需要按最大值缩放生成的图像,以使其正确显示:

out = out./max(out(:));

  • Lastly,检查您使用的是哪种输入图像。对于您的代码,您本质上假设in是2-D (即grayscale intensity image)。如果它是一个truecolor (i.e. RGB) image,第三个维度将会给你带来一些麻烦,你将不得不单独处理每个颜色平面并将它们重新组合,或者convert the RGB image to grayscale。如果它是一个具有关联色彩映射表的indexed image,那么如果不首先将其转换为一个grayscale representation.

,您将无法进行上述处理

票数 3
EN

Stack Overflow用户

发布于 2011-04-19 21:57:24

为什么您期望输出是相同的?

i2是围绕像素邻域(本质上是低通滤波器)执行求和的结果,它是您看到的最终模糊图像。也就是说,您不是在对COL2IM调用执行相反的过程。

票数 0
EN

Stack Overflow用户

发布于 2015-04-08 15:35:19

'sliding'选项获得的i1也包含从'distinct'选项获得的信息,您需要过滤掉这些信息。现在,这可能不是最好的编码方式,但它是有效的。假设mmm的倍数,nnn的倍数。如果不是这样,那么您将不得不相应地进行零位填充才能使其成为这种情况。

代码语言:javascript
运行
复制
in=imread('tire.tif');
[mm nn]=size(in);        
m=8;n=8;
i1 = im2col(in,[m,n],'sliding');

inSel = [];
for k=0:mm/m-1
 inSel = [inSel 1:n:nn+(nn-n+1)*n*k];
end
out = col2im(i1(:,inSel),[m,n],[mm,nn],'distinct');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5712922

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档