OpenCV学习笔记
一只不吃老鼠的猫
我们一路奋战,不是为了改变世界,而是为了不让世界改变我们!
展开
-
形态学滤波—腐蚀,膨胀,开运算,闭运算,形态学梯度,礼帽,黑帽
形态学操作是根据图像形状(一般为二值化图像,即黑白图像)进行的简单操作,最基本的两个就是腐蚀与膨胀。腐蚀:求局部最小值的操作。从数学角度看,腐蚀就是将图像(或者图像的一部分)与卷积核进行卷积。卷积核与图像卷积,即计算核覆盖区域像素的最小值,并把这个最小值赋值给参考点指定的像素。所以整幅图的高亮区域逐渐减少。作用:这对于去除白噪声很有用,也可以用来断开连接在一起的物体。函数:cv2.erode(src, kernel, dst=None, anchor=None, iterations=None, bo原创 2020-12-22 12:19:13 · 1177 阅读 · 3 评论 -
图像处理—方框滤波,均值滤波,高斯滤波,中值滤波,双边滤波
目录线性滤波方框滤波均值滤波高斯滤波非线性滤波中值滤波双边滤波**平滑处理:**也叫做模糊处理,通常用来减少图像上的噪点或者失真。**图像滤波:**在尽量保留图像细节特征的条件下对目标图像的噪声进行抑制。**目的:**①抽出对象的特征作为图像识别的特征模式。②适应图像处理的要求,消除图像数字化时混入的噪声。**滤波器:**可以把它看作一个窗口,当使用滤波器进行平滑滤波操作时,就相当于把窗口放在我们要处理的图像上,看到的图像就是处理后得到的结果。**线性滤波器:**剔除输入信号中不想要的频率或者选取想原创 2020-12-20 15:18:27 · 3584 阅读 · 1 评论 -
openCV学习笔记7—简单阈值,自适应阈值,Otsu‘s二值化
这里写目录标题简单阈值自适应阈值Otsu's二值化简单阈值自适应阈值Otsu’s二值化1.简单阈值含义:当像素值高于阈值时,我们给像素值赋予一个新值,否则就赋予另外一种颜色。函数:cv2.threshold(src, thresh, maxval, type, dst=None)参数含义:src:灰度图像 ,thresh:阈值,maxval:高于(小于)阈值时赋予的新值。type:阈值方法。阈值方法• cv2.THRESH_BINARY• cv2.THRESH_BINARY_INV•原创 2020-12-19 19:27:02 · 575 阅读 · 1 评论 -
openCV学习笔记6—颜色转换,物体跟踪,获取阈值
openCV中的颜色转换有100多种,但我们经常用到的只有两种。BGR↔Gray 和 BGR↔HSV。用到的函数cv2.cvtColor(input_image,flag)。flag就是要转化的类型。接下来重点介绍物体的跟踪。在此之前需要知道几点。掩膜含义:掩模是由0和1组成的一个二进制图像。当在某一功能中应用掩模时,1值区域被处理,被屏蔽的0值区域不被包括在计算中。通过指定的数据值、数据范围、有限或无限值、感兴趣区和注释文件来定义图像掩模,也可以应用上述选项的任意组合作为输入来建立掩模。示例:下原创 2020-12-15 13:26:36 · 4747 阅读 · 1 评论 -
openCV学习笔记5—图像的基础操作,图像ROI,拆分并合并通道,图像混合
1.获取图片的属性图像的属性包括:行,列,通道,图像数据类型,像素数目等img.shape 可以获取图像的形状。他的返回值是一个包含行数,列数,通道数的元组。img.size 可以返回图像的像素数目img.dtype 返回图像的数据类型import cv2import numpy as npimg=cv2.imread('001.jpg')print(img.shape) #(550, 440, 3)print(img.size) #726000print(img.dtype) #原创 2020-12-09 19:12:06 · 330 阅读 · 0 评论 -
openCV学习笔记4—滑动条
1.创建滑动条函数:cv2.getTrackbarPos(trackbarname, winname)参数含义:trackbarnname:滑动条的名字; winname : 滑动条所在窗口的名字下边这个例子通过用滑动条来改变图片的背景颜色(默认为黑色)import numpy as npimport cv2def nothing(x): pass#创建一幅黑色图像img=np.zeros((500,512,3))cv2.namedWindow('image')#创建一个滑动条原创 2020-12-07 18:31:22 · 418 阅读 · 0 评论 -
openCV学习笔记3—鼠标事件(用鼠标绘制圆形,矩形)
1.鼠标调用函数:cv2.setMouseCallback(windowName, onMouse, param=None)参数含义:winname: 窗口的名字onMouse: 鼠标响应函数,回调函数。指定窗口里每次鼠标时间发生的时候,被调用的函数指针。接下来用简单的示例来加深了解。点击左键,绘制一个圆。import cv2import numpy as npdef draw_circle(event,x,y,flags,param): #左键双击 if event==cv2原创 2020-12-07 18:22:10 · 1323 阅读 · 0 评论 -
openCV学习笔记2—绘图函数(画线,矩形,圆形,椭圆,多边形,在图片上添加文字)
1.绘图函数所需要的参数• img:你想要绘制图形的那幅图像。• color:形状的颜色。以 RGB 为例,需要传入一个元组,例如:(255,0,0)代表蓝色。对于灰度图只需要传入灰度值。• thickness:线条的粗细。如果给一个闭合图形设置为 -1,那么这个图形就会被填充。默认值是 1.• linetype:线条的类型,8 连接,抗锯齿等。默认情况是 8 连接。cv2.LINE_AA为抗锯齿,这样看起来会非常平滑。生成一个空灰度图像img=np.zeros((512,512,3),np.u原创 2020-12-06 14:33:42 · 1511 阅读 · 9 评论 -
openCV学习笔记1——图片的读取,显示,保存;视频的读取,显示和保存
在pycharm中下载openCV①打开pycharm下方的terminal终端②在路径下直接输入 pip install opencv-python1.读入图像函数:cv2.imread()第一个参数是图像的路径(需使用正斜杠),第二个是读取图形的方式• cv2.IMREAD_COLOR:读入一副彩色图像。图像的透明度会被忽略,这是默认参数。• cv2.IMREAD_GRAYSCALE:以灰度模式读入图像2.显示图像函数:cv2.imshow()第一个参数为窗口名称,第二个为要显示的原创 2020-12-06 14:07:48 · 835 阅读 · 1 评论