OpenCV常用基本处理函数(3)

颜色空间转换

对图像进行颜色空间转换,比如从 BGR 到灰度图,或者从BGR 到 HSV 等

我们要用到的函数是:cv2.cvtColor(input_image ,flag),其中 flag就是转换类型,常用的就几种转换的类型;

对于 BGR↔Gray 的转换,我们要使用的 flag 就是 cv2.COLOR_BGR2GRAY。
同样对于 BGR↔HSV 的转换,我们用的 flag 就是 cv2.COLOR_BGR2HSV。

物体跟踪

通过某个颜色来跟踪一个物体,

• 从视频中获取每一帧图像
  • 将图像转换到 HSV 空间
  • 设置 HSV 阈值到蓝色范围。
  • 获取蓝色物体

 1 import cv2
 2 import numpy as np
 3
 4 cap = cv2.VideoCapture(r‘你的视频文件‘)
 5
 6 while(1):
 7
 8     # Take each frame
 9     _, frame = cap.read()
10
11     # Convert BGR to HSV
12     hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)
13
14     # define range of blue color in HSV
15     lower_blue = np.array([110,50,50])
16     upper_blue = np.array([130,255,255])
17
18     # Threshold the HSV image to get only blue colors
19     mask = cv2.inRange(hsv, lower_blue, upper_blue)
20
21     # Bitwise-AND mask and original image
22     res = cv2.bitwise_and(frame,frame, mask= mask)
23
24     cv2.imshow(‘frame‘,frame)
25     cv2.imshow(‘mask‘,mask)
26     cv2.imshow(‘res‘,res)
27     k = cv2.waitKey(5) & 0xFF
28     if k == 27:
29         break
30
31 cv2.destroyAllWindows()

利用掩膜(mask)进行“与”操作,即掩膜图像白色区域是对需要处理图像像素的保留

原文地址:https://www.cnblogs.com/ywheunji/p/10987656.html

时间: 2024-11-02 19:14:10

OpenCV常用基本处理函数(3)的相关文章

OpenCV常用基本处理函数(2)图像基本操作

可以根据像素的行和列的坐标获取他的像素值.对 BGR 图像而言,返回值为 B,G,R 例如获取蓝色的像素值: img=cv2.imread('messi5.jpg')px=img[100,100]blue=img[100,100,0]  获取图像属性 图像的属性包括:行,列,通道,图像数据类型,像素数目等img.shape 可以获取图像的形状.他的返回值是一个包含行数,列数,通道数的元组. 1 import cv2 2 import numpy as np 3 img=cv2.imread('m

OpenCV常用基本处理函数(5)图像模糊

2D卷积操作 cv.filter2D() 可以让我们对一幅图像进行卷积操作, 图像模糊(图像平滑)使用低通滤波器可以达到图像模糊的目的.这对与去除噪音很有帮助.其实就是去除图像中的高频成分(比如:噪音,边界).所以边界也会被模糊一点.(当然,也有一些模糊技术不会模糊掉边界).OpenCV 提供了四种模糊技术. 1.平均 只是用卷积框覆盖区域所有像素的平均值来代替中心元素 cv2.blur() 和 cv2.boxFilter() 来完这个任务 2.高斯模糊 把卷积核换成高斯核,方框不变,原来每个方

OpenCV常用基本处理函数(6)图像梯度

形态学转换 腐蚀 img = cv2.imread('j.png',0) kernel = np.ones((5,5),np.uint8) erosion = cv2.erode(img,kernel,iterations = 1) 膨胀 dilation = cv2.dilate(img,kernel,iterations = 1) 先进性腐蚀再进行膨胀就叫做开运算.就像我们上面介绍的那样,它被用来去除噪声.这里我们用到的函数是 cv2.morphologyEx(). opening = cv

OpenCV常用基本处理函数(7)图像金字塔和直方图

高斯金字塔 高斯金字塔的顶部是通过将底部图像中的连续的行和列去除得到的.顶部图像中的每个像素值等于下一层图像中 5 个像素的高斯加权平均值. 这样操作一次一个 MxN 的图像就变成了一个 M/2xN/2 的图像.所以这幅图像的面积就变为原来图像面积的四分之一. 可以得到一个分辨率不断下降的图像金字塔.我们可以使用函数cv2.pyrDown() 和 cv2.pyrUp() 构建图像金字塔. 图像的轮廓: 轮廓可以简单认为成将连续的点(连着边界)连在一起的曲线,具有相同.的颜色或者灰度: 在一个二值

[opencv]常用阵列操作函数总结

/*=========================================================================*/ // 阵列操作 /*=========================================================================*/ 基本矩阵和图像运算符 ———————————————————————————————————————————————————————————————————————————

opencv 常用数据结构和函数

点的表示 Point point; point.x = 10; point.y = 8; 或者 Point point = point(10, 8); 颜色的表示 Scalar(a, b, c) 红色分量为c,绿色分量为b,蓝色分量为a 尺寸的表示 Size(5, 5) 矩形的表示 Rect(x, y, width, height); 左上角的坐标和矩形的宽和高 颜色空间转换 CV_EXPORTS_W void cvtColor( InputArray src, OutputArray dst,

opencv 常用函数介绍

××××××××××××××××××××××××××××××××××××××× CvScalar imgmean,imgstd; double imgmax,imgmin; cvAvgSdv(img,&imgmean,&imgstd); cvMinMaxLoc(img,&imgmin,&imgmax,NULL,NULL); printf("mean:%f std:%f max:%f,min:%f\n",imgmean.val[0],imgstd.val[

OpenCV常用图像操作和鼠标操作(双11版本)

更新日志: 1.添加了自适应窗口大小的功能: 2.添加了在图像上画矩形的功能: 3.添加了在大图上画矩形的功能: 4.部分函数名称更改: 5其他修改. 首先是头文件: /* ******* ccv.h ********** ********* opencv常用操作函数声明 ********** */ /* author: autumoon */ #ifndef _CCV_H_ #define _CCV_H_ #include <afxdlgs.h> //打开文件 #include "

OpenCV常用图像操作和鼠标操作

最近的工作经常需要对图像进行操作,也需要用鼠标对图像进行各种操作,于是自己整理和编写了这个类,总结了常用的基于OpenCV对图像进行的操作. 这个类我也将继续完善和丰富下去,需要的朋友可以直接使用. 如果有什么疏漏的地方还请多多指教. 首先是头文件: /* ******* ccv.h ********** ********* opencv常用操作函数声明 ********** */ /* author: autumoon */ #ifndef _CCV_H_ #define _CCV_H_ #i