我已将图像二值化并计算其黑白像素。在像素计算之后,计算黑色像素的比率,即R =(no:黑色像素/ no:白色像素+ no:黑色像素)* 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
答案 0 :(得分:0)
区域打开区域的表面小于您输入的参数。在你的情况下,它可能没有帮助。
我认为黑/白比率不是解决方案。我要么: