使用MATLAB等过滤掉绿色通道中的像素

时间:2010-06-08 03:58:01

标签: matlab image-processing

它来自Stack Overflow问题 How do I calculate the area under a curve in an image with MATLAB? ,但我也对此感兴趣。

  1. 如何滤除不在绿色通道中的像素?
  2. 如何使用 MATLAB 选择封闭框内的点?
  3. Alt text http://internationalpropertiesregistry.com/Server/showFile.php?file=%2FUpload%2Fstatistics.gifc49ca28823a561a41d09ef9adbb5e0c5.gif

2 个答案:

答案 0 :(得分:1)

对于你的两个问题:

  1. 彩色像素具有红色,绿色和蓝色分量。基于颜色选择像素涉及选择像素中存在多少RGB分量。例如,纯白色像素的每个颜色分量最大(如果图像类型是双精度,则为1,如果图像类型为uint8,则为255)。您可以查看my solution to the referenced question,了解一种可以根据RGB组件选择像素的方法。您还可以查看this MATLAB documentation以获取有关图片及其数据类型的更多信息。

  2. 选择一个点的一种方法是让用户使用GINPUT功能选择它。例如,以下内容将允许用户从当前轴中选择1个点,返回点击的x和y坐标:

    [x,y] = ginput(1);
    

答案 1 :(得分:1)

对于第一个问题,@gnovice的回答应该足够了。

对于第二个问题:使用蒙特卡罗方法:让算法使用RANDI选择一个随机像素(您可能想要搜索图像中心的20个像素,以避免出现问题边界)。如果是绿色像素,请再试一次。如果是白色像素,则您位于其中一个方块内。