使用Python,我必须:
- 将
Test_Image
和Reference_image
分成5x5个块 - 计算每个块的直方图,并将其与另一幅图像中的同一块进行比较。
例如:image1(1,1)
和image2(1,1)
。 - 比较两个图像之间的相似性(应该是变换不变量)。
到目前为止,我已经使用hist=numpy.histogram(image,bins=256)
计算了整个图像的直方图
我想分割图像,然后计算所有这些块的直方图。我还想用巴特查里亚系数来衡量相似性。
有人能教我怎么通过这一关吗?提前谢谢:)
Tags:
这对我有效。它有能力分成n*m块。相应地贴上你的图片。
https://github.com/QuantumNovice/ImageProcessing/blob/master/image_chunkify.py
如果您的图像很大,可以通过操纵数组的跨步来生成所需的窗口来提高性能。下面将使用在Efficient Overlapping Windows with Numpy找到的通用滑动窗口函数-我将在末尾包含它。
滑动窗口功能:
如果要将图像分成四部分,则需要计算
ws
和ss
参数。如果两个维度都可以被两个整除,那么ws
和ss
是相同的值(未指定时,ss
默认为ws
)。Numpy能够将数组维度视为(column,row)或(row,column)-我没有更改任何默认值,我的是(row,column)。对于18x26图片,ws = (26/2, 18/2)
-每个窗口将是13x9,并且通过将窗口以相等的量(没有重叠)siliding来获得相邻的窗口。如果一个维度不能被2整除,ss
也需要确定,并且在窗口中会有一些重叠。对于18x33图像:对于3d窗口(来自具有颜色维度的图像的数据)
ws
和ss
需要具有三维。15x15图像将有9个5x5x3窗口不确定你要找的是不是这样的东西, 这是蛮力版的,而且速度可能很慢,但它确实起到了作用 但是你必须决定如何处理边界。 这将不包括边界,除非窗口完全适合
下面是结果,完整图像在最后。 r、 c表示窗口的左上角
相关问题 更多 >
编程相关推荐