我的图像为.png,我想用给定的图像执行以下任务:
1 - 从图像中删除不必要的白色阴影。
2 - 识别图像中大黑点的位置/坐标。
对于Task 1
我的尝试是:
img = imread('1.png');
imshow(img);
I = img;
[r c] = size(I);
for i=1:r
for j=1:c
if I(i,j) > 230 %here i am changing 240 to different values to get result
%but this is just some hack
I(i,j) = 0;
end
end
end
imshow(I);
原始图片在哪里:
Matlab的结果是:
而对于(2)
我的想法是什么,我怎么能做到这一点任何帮助赞赏。
注意:我是图像处理的新手,所以请以简单的方式向我解释,以便我能理解。感谢
答案 0 :(得分:0)
对于任务1,我不完全确定你的意思是什么,从代码中移除",我想你想将像素值设置为0。 一种更简单,更快捷的方法是:
img = imread('1.png');
img(img>230)=0;
此代码将img的所有高于230的值设置为零。 img> 230创建一个大小为img的逻辑数组,对于高于230的元素为true,对于其他元素为false。 然后使用此逻辑数组将这些像素设置为0.(但您可以使用它们执行任何操作)
Matlab设计用于对矢量和矩阵进行操作,循环遍历元素通常要慢得多。
对于任务2,可以查看:http://nl.mathworks.com/help/images/examples/detect-and-measure-circular-objects-in-an-image.html