![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
openCV
@bwang
这个作者很懒,什么都没留下…
展开
-
openCV中的图像处理 5 形态学转换
cv2.erode(),cv2.dilate(),cv2.morphologyEx()cv2.erode()cv2.dilate()cv2.morphologyEx()'''原理:形态学操作是根据图像形状进行的简单操作。一般情况下对二值化图像进行的操作。需要输入两个参数,一个是原始图像,第二个被称为结构化元素或核,它是用来决定操作的性质的。两个基本的形态学操作是腐蚀和膨胀。他们的变体构成了开运算,闭运算,梯度等。我们会以下图为例逐一介绍它们。'''腐蚀import cv2impor原创 2020-10-21 14:35:51 · 195 阅读 · 0 评论 -
openCV中的图像处理 4 图像平滑
cv.filter2D()平均滤波器:将核放在图像的一个像素A上,求与核对应的图像上25(5x5)个像素的和,在取平均数,用这个平均数替代像素 A 的值。重复以上操作直到 将图像的每一个像素值都更新一边。#模糊化处理,,去除图像中的高频成分(比如:噪音,边界)。import cv2import numpy as npfrom matplotlib import pyplot as pltimg = cv2.imread('logo.jfif')kernel = np.ones((5,5),原创 2020-10-21 12:58:07 · 210 阅读 · 1 评论 -
openCV中的图像处理 3 图像阈值
简单阈值cv2.threshold()函数th,res = cv2.threshold(img,thresh,maxVal,type)img:原图像thresh:阈值maxVal:最大值,一般为255type:cv2.THRESH_BINARY:超过阈值的像素设置为maxVal,不超过的设置为0cv2.THRESH_BINARY_INV:不超过阈值的设置为maxVal,超过的设置为0cv2.THRESH_TOZERO:低于阈值的设置为0cv2.THRESH_TOZERO_INV:低于阈原创 2020-10-21 12:21:45 · 2573 阅读 · 0 评论 -
openCV中的图像处理 2 几何变换
基础函数cv2.getPerspectiveTransformcv2.warpAffine()#img1 = cv2.warpAffine(image, M, (image.shape[1], image.shape[0]))#第三个参数的是输出图像的大小,它的格式 应该是图像的(宽,高)。应该记住的是图像的宽对应的是列数,高对应的是行 数。cv2.getRotationMatrix2D()#M=cv2.getRotationMatrix2D(center, angle, scale)#cente原创 2020-10-07 17:04:36 · 184 阅读 · 0 评论 -
openCV中的图像处理 1 颜色空间转换
HSV在HSV颜色空间中要比在BGR空间中更容易表示一个特定颜色H:色彩/色度。[0,179]S:饱和度,[0,255]V:亮度,[0,255]hsv = cv2.cvtColor(input_image,flag)BGR <--> HSV : flag=cv2.COLOR_BGR2HSVBGR <--> Gray : flag=cv2.COLOR_BGR2HSVmask = cv2.inRange(hsv, lower_red, upper_red)设阈值,去除原创 2020-10-07 14:39:47 · 306 阅读 · 0 评论 -
openCV 核心操作 3 程序性能检测及优化
使用 OpenCV 检测程序效率cv2.getTickCount()#当你在一个函数执行前后都调用它的话,你就会得到这个函数的执行时间 (时钟数)。 cv2.getTickFrequency()#每秒钟的时钟数一个函数运行了多少秒import cv2 import numpy as npe1 = cv2.getTickCount() e2 = cv2.getTickCount() time = (e2 - e1)/ cv2.getTickFrequency()OpenCV 中的默原创 2020-10-05 10:10:42 · 342 阅读 · 1 评论 -
openCV 核心操作 2 图像上的算术运算
基础函数cv2.add() #cv2.add(img1, img2) # 进行图片的加和 #在opencv中加法是饱和操作,也就是有上限值,大于255的使用255计数 ###***需要合成的两个图片 大小必须一致*** cv2.addWeighted() #cv2.addWeighted(img1, 0.6, img2, 0.4, 0) 表示将两个图片进行重叠操作,可以自行设置两张图片的权重 cv2.threshold()#cv2.threshold (src, thresh, max原创 2020-10-04 20:48:04 · 170 阅读 · 0 评论 -
openCV 核心操作 1 图像的基础操作
基础函数img[100, 100] = [255, 255, 255]#img[100,100]是图像坐标,[255,255,255]是像素值img[100, 100, 0]#b:0,g:1,r:2img.item(10, 10, 2)#获取r(分割r,g,b)img.itemset((10, 10, 2), 100)#修改像素值(修改r,b,g)img.shape#输出图像 行数、列数、通道数的元组img.size#返回图像的像素数目 = 行数*列数*通道数img.dtype原创 2020-10-03 10:20:04 · 267 阅读 · 0 评论 -
openCV入门 Gui特性 5 滑动条做调色板
基础函数cv2.creatTrackbar(trackbarname,winname,value,count,TrackbarCallback) #用于创建一个可以调整数值的滑动条,并将滑动条附加到指定的窗口上。 #例:cv2.createTrackbar('R','image',0,255,nothing) #trackbarname:滑动条的名字 #winname:滑动条被放置窗口的名字 #value:滑动条的默认位置 #count:滑动条的最大值 #TrackbarCallback:原创 2020-09-29 21:48:09 · 212 阅读 · 0 评论 -
openCV入门 Gui特性 4 鼠标操作
基本函数def on_Mouse(event,x,y,flags,param): #定义鼠标回调函数 #event:鼠标事件 #x,y:鼠标目前所在点 #flags:记录了一些专门的操作 #param:从setMouseCallback()里传递过来的参数,可选 if event==cv2.EVENT_LBUTTONDBLCLK: cv2.circle(img,(x,y),100,(255,0,0),-1) cv2.namedWindow('i原创 2020-09-29 20:37:37 · 173 阅读 · 0 评论 -
openCV入门 Gui特性 3 绘图函数
基本函数在这里插入代码片原创 2020-09-29 18:47:33 · 146 阅读 · 0 评论 -
openCV入门 Gui特性 2 视频操作
基础函数cv2.VideoCapture(a) # a为设备索引号,笔记本内置摄像头为0,播放视频需将a改为视频文件的名字cap.read()cap.isOpened()cap.set(propId,value)cap.get(propId)cv2.waitKey()cv2.VideoWriter() #保存视频VideoWriter(filename, fourcc, fps, frameSize[, isColor])filename:要保存的文件的路径fourcc原创 2020-09-29 13:01:12 · 173 阅读 · 0 评论 -
openCV入门 Gui特性 1 图片操作
引用import numpy as npimport cv2import matplotlib.pyplot as plot基础函数cv2.imread() #读入图像cv2.imshow() #显示图像cv2.imwrite() #保存图像k = cv2.waitKey(0) #等待键盘输入,k为输入的ASCII码值cv2.destoryAllWindows() #删除所有窗口读入图像img = cv2.imread('meinv',0) # 0 默认灰色原创 2020-09-26 22:01:41 · 201 阅读 · 0 评论