OpenCV学习
呃,记录自己学习OpenCV的一些历程
逆鳞x
我就是个新手菜鸡,主要是记录自己的学习历程,请各位大佬们多多指教,最后请关注一下弟弟.....
展开
-
054- OpenCV Shi-Tomasi角点检测
话不多说,上代码,看结果。import cv2img = cv2.imread('38.jpg')gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)'''cv2.goodFeaturesToTrack(image, maxCorners, qualityLevel, minDistance, corners, mask, blockSize, useHarrisDetector, k)# image: 输入图像, 需为8位或32位浮点类型单通道图像 co原创 2022-03-15 15:44:56 · 122 阅读 · 0 评论 -
053-OpenCV Harris角点检测
话不多说,上代码,看结果。import cv2 # 导入库img = cv2.imread('38.jpg')gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)''' cv2.cornerHarris(src, blockSize, ksize, k, dst, borderType)# src: 输入原图, 需为8位单通道或浮点类型图像# dst: Harris角点检测结果, 类型为CV_32FC1, 大小和原图一样# bl原创 2022-03-17 06:00:00 · 180 阅读 · 0 评论 -
052-OpenCV漫水填充算法
话不多说,上代码,看结果。import cv2 # 导入库img = cv2.imread('46.jpg')cv2.imshow('img', img)mask = Noneseed_pt = (239, 255) # 种子点坐标Color = (255, 255, 255) # 重绘颜色nColorDiff = (10, 10, 10) # 颜色负差最大值pColorDiff = (10, 10, 10) # 颜色正差最大值connectivity = 8 #原创 2022-03-17 05:45:00 · 482 阅读 · 0 评论 -
051-OpenCV GrabCut图像分割算法
话不多说,上代码,看结果。import cv2 # 导入库import numpy as np''' cv2.imread(filename,flags)# filename为文件名,图片与.py文件在一个文件夹时输入文件名即可# 不在一个文件夹时输入图片的路径和名字# flags为图片的颜色类型,默认为1,灰度图像为0'''img = cv2.imread('89.jpg')mask = np.zeros(img.shape[:2], np.uint8原创 2022-03-16 06:00:00 · 666 阅读 · 0 评论 -
050-OpenCV 图像修补
话不多说,上代码,看结果。import cv2import numpy as np''' cv2.imread(filename,flags)# filename为文件名,图片与.py文件在一个文件夹时输入文件名即可# 不在一个文件夹时输入图片的路径和名字# flags为图片的颜色类型,默认为1,灰度图像为0'''img = cv2.imread('51.jpg')''' cv2.imshow(winname,mat)# winname为显示的窗口# mat 需要显原创 2022-03-16 05:45:00 · 529 阅读 · 0 评论 -
049- OpenCV分水岭算法2
话不多说,上代码,看结果。import cv2 # 导入库import numpy as np''' cv2.imread(filename,flags)# filename为文件名,图片与.py文件在一个文件夹时输入文件名即可# 不在一个文件夹时输入图片的路径和名字# flags为图片的颜色类型,默认为1,灰度图像为0'''img = cv2.imread('89.jpg')''' np.copy()# 数组拷贝,理解成备份原图像就行# 原图像img, 备份原创 2022-03-15 14:34:11 · 127 阅读 · 0 评论 -
048-OpenCV 分水岭算法1
话不多说,上代码,看结果。import cv2 # 导入库import numpy as np''' cv2.imread(filename,flags)# filename为文件名,图片与.py文件在一个文件夹时输入文件名即可# 不在一个文件夹时输入图片的路径和名字# flags为图片的颜色类型,默认为1,灰度图像为0'''img = cv2.imread('84.jpg')''' np.copy()# 数组拷贝,理解成备份原图像就行# 原原创 2022-03-15 14:30:43 · 4212 阅读 · 0 评论 -
047-OpenCV 轮廓 形状匹配
话不多说,上代码,看结果。import cv2 # 导入库font = cv2.FONT_HERSHEY_SIMPLEX''' cv2.imread(filename,flags)# filename为文件名,图片与.py文件在一个文件夹时输入文件名即可# 不在一个文件夹时输入图片的路径和名字# flags为图片的颜色类型,默认为1,灰度图像为0'''img = cv2.imread('44.jpg')img1 = cv2.imread('43.jpg')原创 2022-02-06 12:18:35 · 337 阅读 · 0 评论 -
046-OpenCV 轮廓 矩的运算
话不多说,上代码,看结果。import cv2 # 导入库import numpy as np''' cv2.imread(filename,flags)# filename为文件名,图片与.py文件在一个文件夹时输入文件名即可# 不在一个文件夹时输入图片的路径和名字# flags为图片的颜色类型,默认为1,灰度图像为0'''img = cv2.imread('31.jpg')''' np.copy()# 数组拷贝,理解成备份原图像就行# 原图原创 2022-02-06 11:17:44 · 141 阅读 · 0 评论 -
045-OpenCV 点与轮廓的距离及位置关系
话不多说,上代码,看结果。import cv2 # 导入库font = cv2.FONT_HERSHEY_SIMPLEX''' cv2.imread(filename,flags)# filename为文件名,图片与.py文件在一个文件夹时输入文件名即可# 不在一个文件夹时输入图片的路径和名字# flags为图片的颜色类型,默认为1,灰度图像为0'''img = cv2.imread('31.jpg')''' np.copy()# 数组拷贝,理原创 2022-02-06 11:08:46 · 1101 阅读 · 0 评论 -
044-OpenCV mask提取不规则轮廓
话不多说,上代码,看结果。import cv2 # 导入库import numpy as npfont = cv2.FONT_HERSHEY_SIMPLEX''' cv2.imread(filename,flags)# filename为文件名,图片与.py文件在一个文件夹时输入文件名即可# 不在一个文件夹时输入图片的路径和名字# flags为图片的颜色类型,默认为1,灰度图像为0'''img = cv2.imread('29.jpg')'''原创 2022-02-06 10:47:02 · 2365 阅读 · 0 评论 -
043-OpenCV轮廓计算长度和面积
话不多说,上代码,看结果。import cv2 # 导入库font = cv2.FONT_HERSHEY_SIMPLEX''' cv2.imread(filename,flags)# filename为文件名,图片与.py文件在一个文件夹时输入文件名即可# 不在一个文件夹时输入图片的路径和名字# flags为图片的颜色类型,默认为1,灰度图像为0'''img = cv2.imread('40.jpg')''' np.copy()# 数组拷贝,理原创 2022-02-06 10:01:31 · 1602 阅读 · 3 评论 -
042-OpenCV轮廓特征应用-逼近多边形曲线
话不多说,上代码,看结果。import cv2 # 导入库import numpy as npfrom matplotlib import pyplot as pltfont = cv2.FONT_HERSHEY_SIMPLEX''' cv2.imread(filename,flags)# filename为文件名,图片与.py文件在一个文件夹时输入文件名即可# 不在一个文件夹时输入图片的路径和名字# flags为图片的颜色类型,默认为1,灰度图像为0''原创 2022-02-06 09:54:40 · 357 阅读 · 0 评论 -
041-OpenCV轮廓特征应用-轮廓椭圆拟合
话不多说,上代码,看结果。import cv2 # 导入库import numpy as npfrom matplotlib import pyplot as pltfont = cv2.FONT_HERSHEY_SIMPLEX''' cv2.imread(filename,flags)# filename为文件名,图片与.py文件在一个文件夹时输入文件名即可# 不在一个文件夹时输入图片的路径和名字# flags为图片的颜色类型,默认为1,灰度图像为0''原创 2022-02-06 09:42:24 · 1135 阅读 · 0 评论 -
040-OpenCV轮廓特征应用-轮廓最小外接圆
话不多说,上代码,看结果。import cv2 # 导入库font = cv2.FONT_HERSHEY_SIMPLEX''' cv2.imread(filename,flags)# filename为文件名,图片与.py文件在一个文件夹时输入文件名即可# 不在一个文件夹时输入图片的路径和名字# flags为图片的颜色类型,默认为1,灰度图像为0'''img = cv2.imread('40.jpg')''' np.copy()# 数组拷贝,理原创 2022-02-06 09:36:23 · 278 阅读 · 0 评论 -
039-OpenCV轮廓特征应用-最小外接矩形应用-大致计算像素
话不多说,上代码,看结果。import cv2 # 导入库import numpy as npfont = cv2.FONT_HERSHEY_SIMPLEX''' cv2.imread(filename,flags)# filename为文件名,图片与.py文件在一个文件夹时输入文件名即可# 不在一个文件夹时输入图片的路径和名字# flags为图片的颜色类型,默认为1,灰度图像为0'''img = cv2.imread('78.jpg')'''原创 2022-02-06 09:31:42 · 321 阅读 · 0 评论 -
038-OpenCV轮廓特征应用-外接矩形
话不多说,上代码,看结果。import cv2 # 导入库font = cv2.FONT_HERSHEY_SIMPLEX''' cv2.imread(filename,flags)# filename为文件名,图片与.py文件在一个文件夹时输入文件名即可# 不在一个文件夹时输入图片的路径和名字# flags为图片的颜色类型,默认为1,灰度图像为0'''img = cv2.imread('29.jpg')''' np.copy()# 数组拷贝,理原创 2022-02-06 08:47:44 · 1607 阅读 · 1 评论 -
037-OpenCV轮廓特征应用-最小外接矩形
话不多说,上代码,看结果。import cv2 # 导入库import numpy as npfont = cv2.FONT_HERSHEY_SIMPLEX''' cv2.imread(filename,flags)# filename为文件名,图片与.py文件在一个文件夹时输入文件名即可# 不在一个文件夹时输入图片的路径和名字# flags为图片的颜色类型,默认为1,灰度图像为0'''img = cv2.imread('39.jpg')'''原创 2022-02-05 22:04:30 · 4003 阅读 · 0 评论 -
036-OpenCV轮廓特征应用-凸包
所以要是有懂这儿是咋回事的大佬请指教一下弟弟,我就是个新手,请大佬指教!!!其实这早就应该发了,对于这我一直有点小问题,就没发,今天又查了一波资料,算是整明白了。先说两个概念吧,第一个,啥是凸多边形。上面竟是我说的,什么虎狼之词?! 收回我上面说的话,还是有地方没弄明白,但就先这样吧,以后再解决它。还是先说两个概念,啥是凸多边形,啥是凸包。凸多边形,好像是初中学的…我是早忘了,凸多边形有三个定义,任意两个顶点间的线段位于多边形的内部或多边形内任意两个点,其连线全部在多边形内部或边上,那就是凸多原创 2022-02-05 21:46:26 · 2640 阅读 · 1 评论 -
035-OpenCV HSV颜色识别视频
话不多说,上代码,看结果。import cv2 # 导入库import numpy as npfont = cv2.FONT_HERSHEY_SIMPLEXkernel = cv2.getStructuringElement(cv2.MORPH_RECT, (3, 3)) # 矩形结构''' cap = cv2.VideoCapture(filename)# capture有捕获的意思,上面函数的意思就是从文件中捕获视频# filename是文件名,.py文件和原创 2022-01-30 12:10:10 · 325 阅读 · 0 评论 -
034-OpenCV HSV颜色识别图片
话不多说,上代码,看结果。import cv2 # 导入库import numpy as npfont = cv2.FONT_HERSHEY_SIMPLEX''' cv2.imread(filename,flags)# filename为文件名,图片与.py文件在一个文件夹时输入文件名即可# 不在一个文件夹时输入图片的路径和名字# flags为图片的颜色类型,默认为1,灰度图像为0'''img = cv2.imread('45.jpg')''' c原创 2022-01-30 12:03:28 · 2265 阅读 · 1 评论 -
033-OpenCV轮廓查找与绘制、孔洞填充、连通域标记
话不多说,上代码,看结果。import cv2 # 导入库import numpy as npfrom matplotlib import pyplot as plt''' cv2.imread(filename,flags)# filename为文件名,图片与.py文件在一个文件夹时输入文件名即可# 不在一个文件夹时输入图片的路径和名字# flags为图片的颜色类型,默认为1,灰度图像为0'''img = cv2.imread('20.jpg')'''原创 2022-01-30 11:54:51 · 4642 阅读 · 0 评论 -
032-OpenCV模板匹配单个对象、多个对象
话不多说,上代码,看结果。import cv2 # 导入库''' cv2.imread(filename,flags)# filename为文件名,图片与.py文件在一个文件夹时输入文件名即可# 不在一个文件夹时输入图片的路径和名字# flags为图片的颜色类型,默认为1,灰度图像为0'''img = cv2.imread('24.jpg')img1 = cv2.imread('25.PNG')''' cv2.imshow(winname,mat)# winname为原创 2022-01-30 11:06:14 · 1691 阅读 · 0 评论 -
031-OpenCV 直方图反向投影、直方图对比
反向投影的作用就是定位模板图像出现在输入图像的位置。话不多说,上代码,看结果。import cv2import numpy as npfrom matplotlib import pyplot as plt# 反向投影可以用来做图像分割,寻找感兴趣区间# roi图片,就想要找的的图片''' cv2.imread(filename,flags)# filename为文件名,图片与.py文件在一个文件夹时输入文件名即可# 不在一个文件夹时输入图片的路径和名字# flags为图片原创 2022-01-30 10:56:48 · 664 阅读 · 0 评论 -
030-OpenCV直方图均衡化、自适应均衡化
话不多说,上代码,看结果。import cv2 # 导入库import numpy as npfrom matplotlib import pyplot as plt''' cv2.imread(filename,flags)# filename为文件名,图片与.py文件在一个文件夹时输入文件名即可# 不在一个文件夹时输入图片的路径和名字# flags为图片的颜色类型,默认为1,灰度图像为0'''img = cv2.imread('19.jpg', 0)'''cv2.原创 2022-01-30 10:25:07 · 2998 阅读 · 2 评论 -
029-OpenCV直方图单通道、多通道
话不多说,上代码,看结果。import cv2 # 导入库import numpy as npfrom matplotlib import pyplot as plt''' cv2.imread(filename,flags)# filename为文件名,图片与.py文件在一个文件夹时输入文件名即可# 不在一个文件夹时输入图片的路径和名字# flags为图片的颜色类型,默认为1,灰度图像为0'''img = cv2.imread('19.jpg', 0)'''cv2.原创 2022-01-30 09:35:29 · 1629 阅读 · 0 评论 -
028-OpenCV标准霍夫变换、累计概率霍夫变换、霍夫圆变换
话不多说,上代码,看结果。import cv2 # 导入库import numpy as np''' cv2.imread(filename,flags)# filename为文件名,图片与.py文件在一个文件夹时输入文件名即可# 不在一个文件夹时输入图片的路径和名字# flags为图片的颜色类型,默认为1,灰度图像为0'''img = cv2.imread('21.jpg')''' cv2.cvtColor()# 颜色空间转换# img为要转换的图像,后者为转换原创 2022-01-30 08:56:54 · 562 阅读 · 0 评论 -
027-OpenCV边缘检测摄像头
话不多说,上代码,看结果。import cv2 # 导入库''' cap = cv2.VideoCapture(index)# 笔记本只用自带摄像头时,index为0# 笔记本额外接了一个USB摄像头时,index为0或1# 0就是自带摄像头,1就是额外摄像头# 为了方便,有多个摄像头时,不用的设备管理器里禁用掉就好,index为0就行'''cap = cv2.VideoCapture(0)# 之前只是将摄像头拍的画面调了出来,还应该将其作为视频保存下来''' cv2原创 2022-01-29 21:27:17 · 544 阅读 · 0 评论 -
026-OpenCV边缘检测图片
终于到这了,当初为啥会想学OpenCV,就是因为玩树莓派的时候网上找了一个OpenCV摄像头 Canny边缘检测的例子,当时我也不知道具体啥原理,觉得逼格好高…就发了条说说想装个逼,有人评论说出是Canny边缘检测,顿时感觉自己被打脸…今天算是找回场子了吧。话不多说,上代码,看结果。import cv2 # 导入库''' cv2.imread(filename,flags)# filename为文件名,图片与.py文件在一个文件夹时输入文件名即可# 不在一个文件夹时原创 2022-01-29 21:19:15 · 1699 阅读 · 0 评论 -
025-OpenCV膨胀腐蚀和形态学一些操作
话不多说,上代码,看结果。import cv2 # 导入库''' cv2.imread(filename,flags)# filename为文件名,图片与.py文件在一个文件夹时输入文件名即可# 不在一个文件夹时输入图片的路径和名字# flags为图片的颜色类型,默认为1,灰度图像为0'''img = cv2.imread('19.jpg', 0)''' cv2.imshow(winname,mat)# winname为显示的窗口# mat 需要显示的图像'''原创 2022-01-29 21:04:32 · 144 阅读 · 0 评论 -
024-OpenCV滤波
话不多说,上代码,看结果。import cv2 # 导入库import numpy as npimport random''' cv2.imread(filename,flags)# filename为文件名,图片与.py文件在一个文件夹时输入文件名即可# 不在一个文件夹时输入图片的路径和名字# flags为图片的颜色类型,默认为1,灰度图像为0'''img = cv2.imread('12.jpg')'''cv2.namedWindow(winname,flags)#原创 2022-01-29 19:51:08 · 157 阅读 · 0 评论 -
023-OpenCV自适应阈值
话不多说,上代码,看结果。import cv2 # 导入库import numpy as np''' cv2.imread(filename,flags)# filename为文件名,图片与.py文件在一个文件夹时输入文件名即可# 不在一个文件夹时输入图片的路径和名字# flags为图片的颜色类型,默认为1,灰度图像为0'''img = cv2.imread('15.jpg', 0)'''cv2.namedWindow(winname,flags)# winnam原创 2022-01-29 08:58:02 · 585 阅读 · 0 评论 -
022-OpenCV固定阈值
话不多说,上代码,看结果。import cv2 # 导入库import numpy as np''' cv2.imread(filename,flags)# filename为文件名,图片与.py文件在一个文件夹时输入文件名即可# 不在一个文件夹时输入图片的路径和名字# flags为图片的颜色类型,默认为1,灰度图像为0'''img = cv2.imread('15.jpg', 0)'''cv2.namedWindow(winname,flags)#原创 2022-01-29 08:50:45 · 112 阅读 · 0 评论 -
021-OpenCV图像几何变换补充
今天才发现前面的图像几何变换只写了改变图像的像素大小,别的没有写,今天给补上。另外发现自己写的平移图片部分没完成,之前想法想的很复杂,所以没写完。今天又重想了一下思路,重点是用了“if 、 elif”语法,算是完成了预想的平移吧。话不多说,上代码,看结果。import cv2 # 导入库import numpy as npdef Trackbar(x): pass''' cv2.imread(filename,flags)# filename为文件名,图片与原创 2022-01-29 19:33:56 · 440 阅读 · 0 评论 -
020-OpenCV图像几何变换
话不多说,上代码,看结果。import cv2 # 导入库''' cv2.imread(filename,flags)# filename为文件名,图片与.py文件在一个文件夹时输入文件名即可# 不在一个文件夹时输入图片的路径和名字# flags为图片的颜色类型,默认为1,灰度图像为0'''img = cv2.imread('1.jpg')'''img1 = cv2.resize(src, dsize, dst=None, fx=None, fy=None,i原创 2022-01-28 17:06:19 · 114 阅读 · 0 评论 -
019-OpenCV 色彩通道分离
话不多说,上代码,看结果。import cv2 # 导入库''' cv2.imread(filename,flags)# filename为文件名,图片与.py文件在一个文件夹时输入文件名即可# 不在一个文件夹时输入图片的路径和名字# flags为图片的颜色类型,默认为1,灰度图像为0'''img = cv2.imread('73.jpg')'''cv2.namedWindow(winname,flags)# winname是窗口名字# flags为窗口显示方式,原创 2022-01-28 16:52:49 · 635 阅读 · 0 评论 -
018-简单图像操作补充
学得不好,想到哪,写到哪。在没学之前我是真没想到还有这种操作,图像之间可以“加减乘除”就算了,毕竟见过P照片的,竟然还可以逻辑运算“与或非”!好在曾经学过数电,理解起来不是太难。接下来进入主题,上代码。import cv2import numpy as npimg6 = np.ones((400, 400, 3), np.uint8) # 元素全为1的数组img7 = np.ones((400, 400, 3), np.uint8)img6 = img6 * 255 # 纯白图像i原创 2022-01-12 14:55:02 · 1383 阅读 · 0 评论 -
017- OpenCV简单图像操作
话不多说,上代码,看结果。import cv2import numpy as npimg6 = np.ones((400, 400, 3), np.uint8)img7 = np.ones((400, 400, 3), np.uint8)img6 = img6 * 255img7[:] = 255cv2.namedWindow('img6', cv2.WINDOW_AUTOSIZE)cv2.namedWindow('img7', cv2.WINDOW_AUTOSIZE)cv2.named原创 2022-01-12 11:27:59 · 1351 阅读 · 0 评论 -
016-OpenCV 图像对比度亮度调整
学得不好,想到哪,写到哪。先说一个蠢得要命的问题。就这,研究了好久,才突然发现应该是img[i, j],不是[i:j],被自己蠢到哭,服了自己。以后写代码一定要注意细节!!!接下来进入主题,上代码。import cv2def nothing(a): pass''' cv2.imread(filename,flags)# filename为文件名,图片与.py文件在一个文件夹时输入文件名即可# 不在一个文件夹时输入图片的路径和名字# flags为图片的颜色类型,原创 2022-01-11 14:24:41 · 1736 阅读 · 0 评论 -
015-OpenCV读取图像元素
话不多说,上代码,看结果。import cv2img = cv2.imread('1.jpg')img1 = cv2.imread('2.jpg')img[100] = [255, 0, 0] # 第100行元素img[:, 100] = [255, 0, 0] # 第100列元素img[:20] = [0, 255, 0] # 20行以前元素img[:, :20] = [0, 255, 0] # 20列以前元素img[500:] = [0, 0, 255] #原创 2022-01-11 10:19:02 · 349 阅读 · 0 评论