我如何提取图像的白色像素?
31日视图(30天)
显示旧的评论
接受的答案
图像分析
2017年3月8日
简单的阈值来创建一个二进制图像的“白色”在哪里。然后调用beareaopen()来删除blob小于一定规模。然后调用regionprops()来得到你想要的边界框blob中提取。然后调用imcrop()来停止并分别显示它。见下面的附加代码,这张图片它创建:
更多的答案(2)
约翰Chilleri
2017年3月8日
编辑:约翰Chilleri
2017年3月8日
你好,
假设你的图像的大小
x
n
x
3,范围255存储值,您可以使用以下简单的方法:
%认为img是m x n x 3形象
img =双(img);
[m, n, ~] =大小(img);
%第一步,约束到左下角,我们不想失去她的鞋子或左上角:
m1 =圆(2 *米/ 3);
n1 =圆(1 * n / 3);
submat = img (m1: m, 1: n1,:);%符合这一因此,我只是推测
%确定位置的白色像素使用阈值和变化:
为i = 1:尺寸(submat, 1)
为j = 1:尺寸(submat, 2)
如果(和(submat (i, j,:)) > 3 * 240)
%白色像素——做你想原始图像
img (m1-1 + i, j) = [0 0 0];例如,%更黑
结束
结束
结束
img = uint8 (img);
使用上面的代码在屏幕上的图像阈值的240年,我得到了这个:
注意:图像是切断因为我拍摄一个快速的屏幕截图,不是精心剪裁。
可能有更好的方法,但这是一个简单的方法。
希望这可以帮助!
3评论
chandu priya
2019年8月27日
img =双(img);
[m, n, ~] =大小(img);
%第一步,约束到左下角,我们不想失去她的鞋子或左上角:
m1 =圆(2 *米/ 3);
n1 =圆(1 * n / 3);
submat = img (m1: m, 1: n1,:);
%符合这一因此,我只是推测
%确定位置的白色像素使用阈值和变化:
为
i = 1:尺寸(submat, 1)
为
j = 1:尺寸(submat, 2)
如果
(和(submat (i, j,:)) > 3 * 240)
%白色像素——做你想原始图像
img (m1-1 + i, j) = [0 0 0];
例如,%更黑
结束
结束
结束
img = uint8 (img);