假设您有一张
的照片
如果区域/对比度/色差超过100像素(平方米),则需要提醒。 因此该算法对此图片说是,但否对下图进行说明
可能的工具是
此后的某些阶段
如何在两个文件中选择100px的区域差异?
答案 0 :(得分:3)
使用积极的平均滤波器来消除噪音和阈值:
%// 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;
生成的阈值图像是:
我相信你可以从这里拿走它......
答案 1 :(得分:1)
我仍然不明白你的问题,或@ 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:
93414