我的问题是关于'重塑'在matlab中的功能。为了研究兴趣,我自己和一些研究人员为图像(tiff,.JPEG等)制作了一个字节计数器。然后,我们将结果发送给另一个匿名方进行审核。结果是告诉我们生产的计数器是错误的,显然应该使用matlab功能重塑。建议的代码如下。我不明白的是这个功能对图像的作用!我已经运行了代码但是...我不明白代码对图像做了什么以及输出数据是什么。
如果有人愿意为我澄清这个并给我一个假人的解释,我会非常感激!
clc, clear, close all;
IM = imread('Images for Dataset 2/DS2-11.jpg');
hist(reshape(IM,1,[]),0:255);
答案 0 :(得分:0)
您的代码等同于
IM=IM(:);
hist(IM,0:255); %note that now histogram is recommended, instead of hist
这基本上是从您的图像中生成一维矢量,并使用0:255二进制位数计算它的直方图。代码reshape(IM,1,[])
表示:重塑IM
,因此其第一个维度为1,第二个维度为"无论您需要适合它([])"。
示例:size(IM)
为200x500。重塑功能将提供1x100000的矢量。
我相信我展示的版本是更清晰的代码。
注意:当且仅当:
时,直方图才有效如果图像是双倍的,那么您的数据将在[0-1]范围内,因此分组0:255不会真正起作用。
如果图像是RGB,您将计算3个颜色通道"一起"这可能会扭曲你的研究成果。