指纹图像中感兴趣的区域

时间:2018-04-30 13:46:20

标签: opencv fingerprint

我正在使用OpenCV开展指纹识别项目。目前我需要在指纹中提取内部区域(图像中的椭圆),但我不知道该怎么做。

enter image description here

任何建议都表示赞赏。

修改

我需要检查来自传感器设备的指纹和来自身份证的指纹是否匹配。传感器中的指纹如下(左)同时在识别卡中作为正确的指纹。为了验证它们,需要对此指纹进行分段(椭圆外部不提供有用的信息,但为此目的确实增加了“噪声”)。

enter image description here

谢谢。

1 个答案:

答案 0 :(得分:1)

@ API55的评论是正确的,为清楚起见:

  

创建一个蒙版(椭圆内部为白色,外部为黑色)您可以使用椭圆函数和厚度为-1来执行此操作。然后使用掩码复制图像(bitwise_and用于python或copyTo用于c ++应该这样做)...你将始终有一个平方图像,但你将在椭圆外面有黑色(或你想要的颜色)

这些步骤非常适合,

  1. 在图像中的正确位置创建圆形遮罩
  2. 使用该面具复制图像
  3. 您的新图片包含蒙版数据,其他地方都包含黑色数据。
  4. 下面的

    是如何在代码中实现它的示例:

    (我亲切地从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();
    

    有用的链接