问题描述
我正在编写一个脚本,以在较大的图像中定位图像切口的位置(问题类似于所述)。
为此,我使用match_template
一部分skimage
。
我还想看看相关值(我想它应该是一个矩阵,并且match_template
取最大值);
我怎么能得到他们?
这是我正在使用的代码:
cutout = np.loadtxt(filename_cutout.txt)
image = np.loadtxt(filename_image.txt)
array_cutout = np.array(cutout)
array_image = np.array(image)
result = match_template(image, cutout)
ij = np.unravel_index(np.argmax(result), result.shape)
x, y = ij[::-1]
ran = array_cutout.shape
ran_y = ran[1]
ran_x = ran[0]
x_center = x + (ran_x/2)
y_center = y + (ran_y/2)
1楼
skimage.features.match_template获取形状为(M,N)的图像和形状为(m,n)的模板,并返回包含形状相关系数(M-m + 1,N-n + 1)的响应图像。 该响应中的最高值对应于图像中最可能的匹配。
ij = np.unravel_index(np.argmax(result), result.shape)
np.argmax(result)
返回响应图像中的最大值,该最大值应与模板的位置相对应。
您是从.txt文件加载图片的原因吗?
使用match_template时,通常使用skimage.io.imread()
将图像加载到数组中。
然后,我可以将其二值化或灰度化,有时会返回更好的结果。