文档章节

Python OpenCV学习笔记之:图像直方图反向投影

IOTService
 IOTService
发布于 2016/12/07 12:39
字数 267
阅读 60
收藏 0
# -*- coding: utf-8 -*-
"""
图像直方图反向投影
如果一幅图像的区域中显示的是一种结构纹理或者一个独特的物体,那么这个区域的直方图可以看作一个概率函数,
它给的是某个像素属于该纹理或物体的概率。
所谓反向投影就是首先计算某一特征的直方图模型,然后使用模型去寻找测试图像中存在的该特征。
"""

import cv2
import numpy as np
from matplotlib import pyplot as plt

img = cv2.imread('../../../../datas/images/fish-target.jpg')
hsv = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)

target = cv2.imread('../../../../datas/images/fish.jpg')
hsvt = cv2.cvtColor(target,cv2.COLOR_BGR2HSV)

roihist = cv2.calcHist([hsv],[0, 1], None, [180, 256], [0, 180, 0, 256] )

cv2.normalize(roihist,roihist,0,255,cv2.NORM_MINMAX)
dst = cv2.calcBackProject([hsvt],[0,1],roihist,[0,180,0,256],1)

disc = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(5,5))
cv2.filter2D(dst,-1,disc,dst)
dst2 = dst.copy()
ret,thresh = cv2.threshold(dst,50,255,0)
thresh = cv2.merge((dst,dst,dst))
dst2 = cv2.merge((dst,dst,dst))
res = cv2.bitwise_and(target,thresh)

res = np.vstack((target,dst2,res))

#cv2.imwrite('res.jpg',res)
cv2.imshow("result",res)
cv2.waitKey()
cv2.destroyAllWindows()

© 著作权归作者所有

共有 人打赏支持
IOTService
粉丝 22
博文 153
码字总数 34417
作品 0
广州
其他
私信 提问
视频分析(一):Meanshift均值漂移和Camshift算法来查找和跟踪视频中的对象

目标 在这一章当中, 我们将学习Meanshift和Camshift算法来查找和跟踪视频中的对象。 均值漂移 手段背后的直觉很简单。考虑你有一组点。(它可以是像直方图反投影的像素分布)。您会看到一个...

漫步当下
2018/05/19
0
0
[Python图像处理] 十一.灰度直方图概念及OpenCV绘制直方图

版权声明:本文为博主原创文章,转载请注明CSDN博客源地址!共同学习,一起进步~ https://blog.csdn.net/Eastmount/article/details/83758402 该系列文章是讲解Python OpenCV图像处理知识,前...

Eastmount
2018/11/06
0
0
opencv 反向投影 cvCalcBackProject的示例 ,用图像中某中颜色的区域

在学习 《学习opencv》的cvCalcBackProject时自己写的例子 #include <iostream> include <cv.h> include <highgui.h> include <cxcore.h> include <opencv2/opencv.hpp> using namespace std......

JiaMing
2013/12/27
0
0
基于OpenCV和Python的文件操作——捕获摄像头的帧,在窗口显示图像,在窗口显示摄像头帧和视频文件的读/写

0 写在前面 这篇博客主要参考资料为《OpenCV 3计算机视觉Python语言实现》(Learning OpenCV 3 Computer Vison with Python)。 因为之前用Faster R-CNN做过一个红绿灯检测的小实践,但是Git...

learning_tortosie
2018/04/12
0
0
深刻了解OPENCV

OpenCV是Intel资助的开源计算机视觉库。它由一系列 C 函数和少量 C++ 类构成,实现了图像处理和计算机视觉方面的很多通用算法。 OpenCV 拥有包括 300 多个C/C++函数的跨平台的中、高层 API。...

红薯
2008/12/10
3.1K
3

没有更多内容

加载失败,请刷新页面

加载更多

Linux Wireshark普通用户启动使用方案

当系统安装好Wireshark后请正常启动是否可以进行正常使用,如果不行请参考下列指导 向系统添加一个用户组 sudo groupadd wireshark //如提示此组存在可跳过 将指定用户添加到这个组中 sudo...

CHONGCHEN
今天
2
0
CSS 选择器参考手册

CSS 选择器参考手册 选择器 描述 [attribute] 用于选取带有指定属性的元素。 [attribute=value] 用于选取带有指定属性和值的元素。 [attribute~=value] 用于选取属性值中包含指定词汇的元素。...

Jack088
今天
2
0
数据库篇一

数据库篇 第1章 数据库介绍 1.1 数据库概述  什么是数据库(DB:DataBase) 数据库就是存储数据的仓库,其本质是一个文件系统,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据...

stars永恒
今天
4
0
Intellij IDEA中设置了jsp页面,但是在访问页面时却提示404

在Intellij IDEA中设置了spring boot的jsp页面,但是在访问时,却出现404,Not Found,经过查找资料后解决,步骤如下: 在Run/Debug Configurations面板中设置该程序的Working Directory选项...

uknow8692
昨天
4
0
day24:文档第五行增内容|每月1号压缩/etc/目录|过滤文本重复次数多的10个单词|人员分组|

1、在文本文档1.txt里第五行下面增加如下内容;两个方法; # This is a test file.# Test insert line into this file. 分析:给文档后增加内容,可以用sed 来搞定;也可以用while do done...

芬野de博客
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部