Skip to content
This repository has been archived by the owner on Jul 31, 2022. It is now read-only.

图像配准算法。包括 SIFT、ORB、SURF、AKAZE、BRIEF、matchTemplate

License

Notifications You must be signed in to change notification settings

hakaboom/py_image_registration

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

66 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

py_image_registration

GitHub issues GitHub forks GitHub stars GitHub license PyPI - Downloads

该项目已移到另外一个库进行后续开发 https://github.com/hakaboom/image_registration

Image registration algorithm. Includes SIFT, ORB, SURF, AKAZE, BRIEF, matchTemplate

同时包含cuda加速(ORB, SURF, matchTemplate)

Requirements

  • 开发时使用的是python 3.8
  • opencv需要自己安装或自行编译,读取的到cv2模块就行

Installation

pip3 install py-image-registration

Example

  1. create
from image_registration import ORB, SIFT, RootSIFT, SURF, BRIEF, AKAZE, CUDA_SURF, CUDA_ORB, match_template

orb = ORB()
sift = SIFT()
# Other
# orb = ORB(nfeatures=1000, nlevels=9)
# 提取器的参数可以根据opencv文档调整
  1. MatchTemplate

模板匹配

from image_registration import match_template
from baseImage import Image, Rect

im_source = Image('test.png')
im_search = Image('star.png')

tpl = match_template()
result = tpl.find_best(im_source=im_source, im_search=im_search)
# expect output
# {
#  'rect': Rect,  # 返回一个baseImage.Rect类的识别范围
#  'confidence': 0.99 # 返回识别结果的置信度
# }
# Other
# tpl.find_best(im_source=im_source, im_search=im_search, threshold=0.8, rgb=False)
# threshold: 匹配度 0~1
# rgb: 是否判断rgb颜色


tpl.find_all(im_source=im_source, im_search=im_search)
# expect output
# {
#  {
#     'rect': Rect,  # 返回一个baseImage.Rect类的识别范围
#     'confidence': 0.99 # 返回识别结果的置信度
#  },
#  {
#     'rect': Rect
#     'confidence': 0.95
#  },
#  ...
# }
# Other
# tpl.find_all(im_source=im_source, im_search=im_search, threshold=0.8, max_count=20, rgb=False)
# threshold: 匹配度 0~1
# max_count: 最多匹配数量
# rgb: 是否判断rgb颜色
  1. keypoint detector and descriptor extractor

基于特征点的匹配

from image_registration import ORB, SIFT, RootSIFT, SURF, BRIEF, AKAZE, CUDA_SURF, CUDA_ORB

orb = ORB()
sift = SIFT()

im_source = Image('test.png')
im_search = Image('star.png')

orb.find_best(im_source=im_source, im_search=im_search)
orb.find_all(im_source=im_source, im_search=im_search)
# 返回结果MatchTemplate

Exceptions

  1. NoModuleError

模块未找到, 检查opencv库是否安装正确

  1. CreateExtractorError

创建特征提取器失败, 检查传入参数以及opencv库是否安装正确

  1. NoEnoughPointsError

当特征提取器提取特殊数量少于2时弹出异常

  1. CudaSurfInputImageError

图像大小不符合cuda_surf的要求时弹出异常opencv_surf.cuda

  1. CudaOrbDetectorError

提取特征时出现的错误,需要调整orb的初始参数(scaleFactor, nlevels, firstLevel)

  1. HomographyError

An error occurred while findHomography

  1. MatchResultError

An error occurred while result out of screen

  1. PerspectiveTransformError

An error occurred while perspectiveTransform

About

图像配准算法。包括 SIFT、ORB、SURF、AKAZE、BRIEF、matchTemplate

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages