OpenCV:操纵相同类型的不同图像看起来都一样

时间:2017-12-17 21:04:28

标签: opencv

我有一大堆图片,这些图片是拍摄驾驶执照的手机照片(但这可能适用于任何类型的文件)。它们具有各种形状和尺寸,包括相机的不同角度,相机与驾驶执照的不同距离,不同的照明等。

OpenCV中是否有任何方法可以在每个图像中识别已知的地标,然后裁剪,调整大小,旋转每个图像,以便最终结果,我有一组完全统一的图像(例如,驾驶执照填满整个图像,它们看起来都一样,对齐相同,等等)?

谢谢!

2 个答案:

答案 0 :(得分:0)

我建议的一种方法(使用OpenCV中提供的功能)是:

  1. 训练Haar Cascade分类器识别地标(适用于徽标)

  2. 对图像进行一些旋转,然后在每个图像中查找徽标。您应该找到一个或多个匹配项,具体取决于您使用的轮换次数

  3. 执行边缘检测并将边缘像素投影到垂直轴。具有最大间隙的投影将表示文本之间的间距,并引导您选择最接近正确方向的一个图像

  4. 现在,您可以使用驾驶执照的已知属性(徽标距左上角等数英寸等)使用徽标位置裁剪,缩放或取消缩放此图像。

  5. 您也可以将徽标的SIFT功能与照片的SIFT功能相匹配,而不是Haar级联分类器。

  6. 我没有发布任何代码或示例,因为问题非常广泛。但是,您可以轻松找到每个步骤的OpenCV文档和示例。

答案 1 :(得分:0)

  

OpenCV中有没有办法

  1. 在每张图片中标识一个已知的地标:有多种方法可以执行此操作,请参阅此处:https://docs.opencv.org/3.0-beta/doc/py_tutorials/py_feature2d/py_table_of_contents_feature2d/py_table_of_contents_feature2d.html
  2. crop:是的,将其分组并且不要忘记copyTo Select a subset of a Mat and copy them to create a new mat in C++/Opencv
  3. 调整大小,旋转每个图像,以便为最终结果,我有一个集合 完全统一的图像:您应该使用如下所示的转换:https://docs.opencv.org/3.0-beta/doc/py_tutorials/py_imgproc/py_geometric_transformations/py_geometric_transformations.html
  4. 本教程应该对您有用:https://www.learnopencv.com/homography-examples-using-opencv-python-c/