假设你有一张照片

如果面积/对比度/色差大于100像素(以平方米计),则需要发出警告。所以算法说是的,,,对这张图片,但是,no,,对于下面的图片

可能的工具是
Matlab R2014b中Shai代码的输出


在这之后的一些阶段
如何在两个文件中选择100 can区域差异?
发布于 2015-03-22 08:25:49
使用积极平均滤波器消除噪声和阈值:
%// read image and convert to single channel gray-scale:
img1 = imread('http://i.stack.imgur.com/ZDoUe.png');
img1 = rgb2gray(img1);
img2 = imread('http://i.stack.imgur.com/TOs0w.png');
img2 = rgb2gray(img2);
%// use aggressive average filter
f1 = imfilter( img1, ones(11)/121, 'symmetric');
f2 = imfilter( img2, ones(11)/121, 'symmetric');一旦噪声被粗略去除,你就可以对滤波后的图像进行阈值化。
bw1 = f1 > 128;
bw2 = f2 > 128;由此产生的阈值图像如下:

我相信你可以从这里..。
发布于 2015-03-23 22:12:48
我仍然不明白你的问题,也不明白@Shai的回答有什么问题。据我所见,用ImageMagick解决这个问题就像Shai建议的一样容易,所以我也不明白为什么您认为ImageMagick是错误的方法。也许你可以澄清你真正寻求的是什么,所以我们都可以试着进一步帮助你。
无论如何,就目前而言,我也会以同样的方式对待ImageMagick
convert input.png -blur x5 -threshold 50% output.png

如果要计数白色像素,我将克隆图像并将克隆中的所有像素设置为黑色,然后让ImageMagick以绝对的方式告诉我克隆和原始像素之间有多少像素不同,如下所示:
convert output.png \( +clone -evaluate set 0 \) -metric AE -compare -format "%[distortion]" info:输出
89008如果您想要计数黑色像素,您可以首先反转(否定)图像,如下所示
convert output.png -negate \( +clone -evaluate set 0 \) -metric AE -compare -format "%[distortion]" info:
93414https://stackoverflow.com/questions/29185724
复制相似问题