matlab:找圈子

时间:2013-04-02 18:46:42

标签: matlab image-processing

我是matlab的新手! 我正试图从帧序列中检测出瞳孔...我需要用这种方法来检测眼睛是否开放。

当我不使用侵蚀和扩张时,imfindcircles正在工作,但是侵蚀和扩张的步骤给我带来了一个非常酷的图像,它是白色背景上非常干净的黑色圆圈,霍夫会像魅力一样工作,但它没有,我真的找不到出路。 它不依赖于半径范围,因为如果我评论侵蚀和扩张它的工作原理。正如我刚才所说,侵蚀和扩张产生了完美的形象。

任何提示?

rightEye = imcrop(videoFrame, rightEyeBox);
leftEye = imcrop(videoFrame, leftEyeBox);

% to grayscale
grayRightEye = rgb2gray(rightEye);
grayLeftEye = rgb2gray(leftEye);

% binarize
grayRightEye = im2bw(grayRightEye, 0.45);

% erode and dilate
finalRight = imdilate(grayRightEye, strel('disk', 7));
finalRight = imerode(finalRight, strel('disk', 11));

imshow(grayRightEye);

rightCircle = max(rightRows, rightCols);
[centers, radii] = imfindcircles(grayRightEye,[5 25])

1 个答案:

答案 0 :(得分:0)

我已经通过强制转换finalRight来解决问题!