我正在使用OpenCV开展指纹识别项目。目前我需要在指纹中提取内部区域(图像中的椭圆),但我不知道该怎么做。
任何建议都表示赞赏。
修改:
我需要检查来自传感器设备的指纹和来自身份证的指纹是否匹配。传感器中的指纹如下(左)同时在识别卡中作为正确的指纹。为了验证它们,需要对此指纹进行分段(椭圆外部不提供有用的信息,但为此目的确实增加了“噪声”)。
谢谢。
答案 0 :(得分:1)
@ API55的评论是正确的,为清楚起见:
创建一个蒙版(椭圆内部为白色,外部为黑色)您可以使用椭圆函数和厚度为-1来执行此操作。然后使用掩码复制图像(bitwise_and用于python或copyTo用于c ++应该这样做)...你将始终有一个平方图像,但你将在椭圆外面有黑色(或你想要的颜色)
这些步骤非常适合,
是如何在代码中实现它的示例:
(我亲切地从here借来)
Mat img = imread("small1.png", 0); // load gray
Rect region(10,10,40,40); // example roi
Mat roi(img, region); // part of img
Mat mask(Size(40,40), CV_8U, Scalar(0)); // all black
circle(mask, Point(20,20), 20, Scalar(255), -1, LINE_AA); // filled circle
Mat circRoi;
bitwise_and(roi, roi, circRoi, mask); // retain only pixels inside the circle
//
// now you can do your intensity calculation on circRoi
//
imshow("circle masked", mask);
imshow("masked roi", circRoi);
waitKey();
有用的链接