【发布时间】: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