【问题标题】:How to remove the unwanted black region from binary image?如何从二值图像中去除不需要的黑色区域?
【发布时间】:2016-02-28 18:22:44
【问题描述】:

我已对图像进行二值化并计算其黑白像素。像素计算后,计算黑色像素的比例,即R=(黑色像素数/白色像素数+黑色像素数)*100。如果 R>20% 则眼睛处于打开状态,否则我必须使用此结果来声明眼睛是打开或关闭的。但是当我计算这个比率时,它并不是我想要的。我认为由于图像中不需要的黑色区域或图像阈值可能存在问题,计算黑白像素时可能会出现一些错误。我正在使用 Otsu 的阈值方法image。 在查找此主题时,我还尝试了 `openInput=bwareaopen(bw, 80) 但这对于删除不需要的黑色区域效果不佳。请帮我删除不需要的区域。

close all
clear all
I=imread('op.jpg'); 
I=rgb2gray(I);
thres_level=graythresh(I); % find the threshold level of image
bw=im2bw(I,thres_level); % converts an image into binary
figure, imshow(bw);
totnumpix=numel(bw); % calculate total no of pixels in image
nwhite_open=sum(bw(:)); % calculate the black pixels in image;
nblack_open=totnumpix-nwhite_open; %calculate white pixels in image;
R=(nblack_open/(nblack_open+nwhite_open))*100

【问题讨论】:

  • 您的问题不是如何去除不需要的黑色区域,而是如何找到眼睛。为什么你认为这是正确的方法?尝试 google opencv eye detection 获取其他想法
  • 亲爱的 joseph 首先我在 MATLAB 中工作,其次我已经成功地从面部区域检测到眼睛。现在第三部分是打开和关闭眼睛,但是当我使用黑白比例进行此操作时,接近比例没有达到要求,这就是为什么我认为它可以正确识别黑白像素

标签: image-processing


【解决方案1】:

面积小于您输入的参数的面积打开擦除面积。在你的情况下,它可能不会有帮助。

我认为黑白比例不是解决方案。我会:

  • 检测虹膜(多篇关于该主题的有效论文/帖子,主要使用霍夫变换),如果检测失败,则闭眼。
  • 如果您有原始彩色图像,则使用皮肤检测(HSV 颜色空间中的简单颜色阈值)。因为你的皮肤比例将决定你何时闭上眼睛。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-15
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    • 2012-06-29
    • 2016-01-12
    • 1970-01-01
    相关资源
    最近更新 更多