本文介绍了python opencv 直方图反向投影的方法,分享给大家,具体如下:
创新互联公司-专业网站定制、快速模板网站建设、高性价比厦门网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式厦门网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖厦门地区。费用合理售后完善,十年实体公司更值得信赖。目标:
直方图反向投影
原理:
反向投影可以用来做图像分割,寻找感兴趣区间。它会输出与输入图像大小相同的图像,每一个像素值代表了输入图像上对应点属于目标对象的概率,简言之,输出图像中像素值越高的点越可能代表想要查找的目标。直方图投影经常与camshift(追踪算法)算法一起使用。
算法实现的方法,首先要为包含我们感兴趣区域的图像建立直方图(样例要找一片草坪,其他的不要)。被查找的对象最好是占据整个图像(图像里全是草坪)。最好使用颜色直方图,物体的颜色信息比灰度图像更容易被分割和识别。再将颜色直方图投影到输入图像查找目标,也就是找到输入图像中每一个像素点的像素值在直方图中对应的概率,这样就得到一个概率图像,最后设置适当的阈值对概率图像进行二值化。
numpy算法:
建立两幅颜色直方图,目标图像直方图(M),输入图像直方图(I)
import cv2 import numpy as np from matplotlib import pyplot as plt #roi图片,就想要找的的图片 roi = cv2.imread('3.jpg') hsv = cv2.cvtColor(roi,cv2.COLOR_BGR2HSV) #目标搜索图片 target = cv2.imread('33.jpg') hsvt = cv2.cvtColor(target,cv2.COLOR_BGR2HSV) #创建直方图 M = cv2.calcHist([hsv],[0,1],None,[180,256],[0,180,0,256]) I = cv2.calcHist([hsvt],[0,1],None,[180,256],[0,180,0,256])
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款