【发布时间】:2012-11-22 20:51:14
【问题描述】:
图像直方图的计算是一项简单的任务,大多数可用的语言或库都为此提供了函数。但是,如果我想从直方图的计算中排除图像背景(例如,假设有一个蒙版来裁剪图像中包含的对象),是否有函数允许您仅考虑图像的一部分来计算直方图由掩码定义?
更新。蒙版没有特定的形状,因为它是通过减去背景获得的:换句话说,蒙版的黑色像素标识背景,而白色像素标识背景对象。
【问题讨论】:
-
没有特定形状是什么意思?它应该具有与图像相同的大小,背景像素中的值为 true。你能举个例子吗(阅读,给我们看代码)。
-
@carandraug 你的意思是它没有特定的形状?抱歉,我使用形容词“特别”可能有误:面具没有特定形状(不是方形蒙版,也不是矩形等);例如,如果我有一张包含一杯咖啡的图像,我将只计算杯子的直方图并排除背景像素。
-
然后告诉我你是如何识别它的。因为您问题的答案取决于您如何识别自己的背景。
-
该代码确实返回了一个与输入图像大小完全相同的逻辑矩阵。您可以将其用于logical indexing。执行
image(mask)将返回image的像素值,其中mask为真。也就是说,@Mr E 的回答是正确的。但是,由于您正在进行图像处理,因此不要使用hist,而是使用imhist。您将需要图像包(获取版本 2.0.0,它修复了一个大错误)。
标签: algorithm matlab image-processing opencv octave