扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
本文介绍了python OpenCV学习笔记直方图反向投影的实现,分享给大家,具体如下:
创新互联服务项目包括柞水网站建设、柞水网站制作、柞水网页制作以及柞水网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,柞水网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到柞水省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!官方文档 – https://docs.opencv.org/3.4.0/dc/df6/tutorial_py_histogram_backprojection.html
它用于图像分割或寻找图像中感兴趣的对象。简单地说,它创建一个与我们的输入图像相同大小(但单通道)的图像,其中每个像素对应于属于我们对象的像素的概率。输出图像将使我们感兴趣的对象比其余部分更白。
该怎么做呢?我们创建一个图像的直方图,其中包含我们感兴趣的对象。为了得到更好的结果,对象应该尽可能地填充图像。而颜色直方图比灰度直方图更受青睐,因为对象的颜色比灰度强度更能定义对象。然后,我们在我们的测试图像上“反向投射”这个直方图,我们需要找到这个对象,换句话说,我们计算每个像素的概率,并显示它。在适当的阈值上产生的输出结果使我们得到了一个单独的结果。
Numpy中的算法
1、首先,我们需要计算我们需要找到的对象的颜色直方图(让它为'M')和我们将要搜索的图像(让它为'I')。
import numpy as np import cv2 as cv from matplotlib import pyplot as plt # roi是我们需要找到的对象或区域 roi = cv.imread('rose_red.png') hsv = cv.cvtColor(roi, cv.COLOR_BGR2HSV) # target是我们搜索的图像 target = cv.imread('rose.png') hsvt = cv.cvtColor(target, cv.COLOR_BGR2HSV) # 用calcHist来找直方图,也可以用np.histogram2d M = cv.calcHist([hsv], [0,1], None, [180,256], [0,180,0,256]) I = cv.calcHist([hsvt], [0,1], None, [180,256], [0,180,0,256])
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流