【发布时间】:2015-01-02 05:45:41
【问题描述】:
我尝试从我的工作区读取一个文件,并使用灰度直方图计算每个图像带的一阶熵 这是我的尝试,我可以使用加载功能读取 .mat 文件
clc
I = load('file.mat');
E = entropy(I);
hist(E);
figure
plot(E);
更新: 这是代码:
I = load('file.mat');
E = zeros(1,size(I,3));
for idx = 1 : size(I,3)
%// Calculate PDF
chan = I(:,:,idx);
h = imhist(chan);
end
现在,我收到此错误:
再次感谢您的帮助
【问题讨论】:
-
I到底是什么?这是彩色图像吗?从您的代码中不是很清楚。顺便说一句,entropy已经计算了整个图像的熵。它在内部计算强度的直方图 / PDF 并以这种方式计算熵。另外,看看这篇文章以获得洞察力:stackoverflow.com/questions/27726735/… - 然而,这篇文章只是计算图像一部分的熵。只需更改代码,以便它在整个图像上使用它。 -
完全没问题。在回答您的问题之前,我只是想了解所有事实。我已经为你写了一个答案。祝你好运!
-
这是说您的
I是struct而不是图像。您可能使用save来保存您的工作区。请在命令提示符中输入I,按回车键,然后将其输出复制并粘贴到此处。 -
嗯嗯。那正是我所想。
I是struct。因此,您需要通过以下方式访问实际图像数据:im = I.indians_pines_corrected;。我已经更正了我的帖子。现在检查它 - 它应该工作。顺便说一句,如果您没有向我们提供错误信息,将会有所帮助。I不是图像 - 它是struct。 -
这可能是你的形象。这与我编写的代码无关。不幸的是,我无法帮助你!祝你好运!
标签: matlab image-processing entropy