简述
最近在做图像处理的时候,需要将图片中的地板部分切出来,所以想法是先用滑动窗口扫描图片,用矩形框框住图片的一小块,让这部分与提前准备好的地板模板图片比较,求出相似度,然后接下来才能根据相似度进行下一步处理。接下来我分享一些心得。
首先定义滑动窗口
#设置滑动窗口
def sliding_window(image, stepSize, windowSize):
# slide a window across the image
for y in range(0, image.shape[0], stepSize):
for x in range(0, image.shape[1], stepSize):
# yield the current window
yield (x, y, image[y:y + windowSize[1], x:x + windowSize[0]])
然后定义比较相似度的方法
#单通道直方图
def classify_gray_hist(img1,img2):
im1 = cv2.resize(img1,(80,80))
gray1 = cv2.cvtColor(im1,cv2.COLOR_BGR2GRAY)
gray2 = cv2.cvtColor(img2,cv2.COLOR_BGR2GRAY)
hist1 = cv2.calcHist(gray1, [1], None, [256], [0.0, 255.0])
hist2 = cv2.calcHist(gray2, [1], None, [256], [0.0, 255.0])
#求两个图像的相似度,有三个参数可以调用。巴氏距离越大,相似度越低;相关性越小,相似度越低;卡方越大,相似度越低(我感觉这个不准)
match1 = cv2.compareHist(hist1, hist2, cv2.HISTCMP

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



