如何解决如何在打印扫描过程后在图像中找到相同的特征点?
我试图在打印扫描过程之前和之后在图像中找到相同的特征点。为此,我使用了 cv2.goodFeaturesToTrack
方法:
import numpy as np
import matplotlib.pyplot as plt
from PIL import Image
from skimage import color,transform
import cv2
# Read image as Numpy array
image = np.array(Image.open('images/stairway512.jpg'))
# Blur image
imageBlurred = cv2.blur(image,(10,10))
# Find 5 feature points in cropped & blurred image
points = cv2.goodFeaturesToTrack(imageBlurred,5,0.01,10)
我得到的分数是:
array([[[ 62.,186.]],[[298.,398.]],[[ 47.,185.]],68.]],[[195.,135.]]],dtype=float32)
我使用模糊是因为我认为它可以最大限度地减少打印扫描过程的影响(因为我可以用同样的方式模糊扫描图像),但我最终得到了不同的扫描图像特征点。但是,当我对扫描图像使用相同的代码时,我得到了以下几点:
array([[[297.,403.]],[[297.,359.]],[[268.,396.]],[[308.,65.]]],dtype=float32)
关于如何使这些观点相同的任何想法?
解决方法
一般来说,特征点是不稳定的,当你修改图像时,特征点的位置和分数会发生变化。
取更多的特征点(比如 100、5 太小了)并通过最近邻规则将它们成对关联。这将使您更深入地了解使用此检测器可以实现的目标。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。