![](https://img-blog.csdnimg.cn/20210426121420790.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
opencv学习
配套b站贾志刚opencv3.3网课食用更佳
chagiko
此人很懒,编辑了又删了
展开
-
opencv学习笔记(18)其他形态学操作
其他形态学操作顶帽(tophat)定义(defination)API演示效果黑帽(blackhat)定义(defination)API演示效果形态学梯度(gradient)基本梯度(basic gradient)定义(defination)API演示效果内部梯度与外部梯度(internal gradient and external gradient)定义(defination)API演示效果顶帽(tophat)定义(defination)顶帽是原图像与开操作之间的差值图像。API演示#cod原创 2021-03-04 19:47:27 · 175 阅读 · 2 评论 -
opencv学习笔记(17)开闭操作
开闭操作开操作(open)简介作用闭操作(close)简介作用代码API使用开操作(open)简介1.图像形态学的重要操作之一,基于膨胀与腐蚀操作组合形成的。2.主要是应用在二值图像分析中,灰度图像亦可。3.开操作=腐蚀+膨胀,输入图像+结构元素。作用1.消除图像中小的干扰区域,消除3×3、5×5的噪点。2.水平或者垂直线提取。闭操作(close)简介1.图像形态学的重要操作之一,基于膨胀与腐蚀操作组合形成的。2.主要是应用在二值图像分析中,灰度图像亦可。3.开操作=膨胀+腐蚀,输原创 2021-03-04 17:16:03 · 396 阅读 · 6 评论 -
opencv学习笔记(16)膨胀与腐蚀
写在前面1.膨胀和腐蚀可以分别理解为”低值滤波“和”高值滤波“,膨胀和腐蚀的都是低值。2。膨胀腐蚀不仅仅可以用于单通道图像,一样适用于三通道的RGB图像。本篇博客将图像二值化,只是为了方便理解和效果呈现。膨胀膨胀的作用:1.对象大小增加一个像素(3×3)2.平滑对象边缘3.减少或者填充对象之间的距离API演示#coding=UTF-8import cv2 as cvimport numpy as npdef dilate_demo(image): print(image.sh原创 2021-02-28 19:24:08 · 333 阅读 · 0 评论 -
opencv学习笔记(15)轮廓发现
参考:python-opencv2利用cv2.findContours()函数来查找检测物体的轮廓试验用图:1.图像二值化寻找边缘#coding=UTF-8import cv2 as cvimport numpy as npdef contours_demo(image): dst = cv.GaussianBlur(image,(3,3),0) gray = cv.cvtColor(dst,cv.COLOR_BGR2GRAY) ret,binary = cv.thr原创 2021-02-19 19:05:01 · 179 阅读 · 0 评论 -
opencv学习笔记(14)霍夫直线和霍夫圆
霍夫直线检测霍夫变换直线检测(Line Detection)原理及示例这位大佬用的是c++版本,但并不影响食用。然后把自己写的python代码传上来吧。使用图片:1.cv.HoughLines()# coding=UTF-8import cv2 as cvimport numpy as npdef line_dection(image): gray = cv.cvtColor(image,cv.COLOR_BGR2GRAY) edges = cv.Canny(gray,原创 2021-02-19 16:14:03 · 139 阅读 · 0 评论 -
opencv学习笔记(13)canny边缘提取
canny算法介绍(老师ppt里的):1.高斯模糊(GaussianBlur)2.灰度转换(cvtColor)3.计算梯度(Sobel/Scharr)4.非最大信号抑制5.高低阈值输出二值图像# coding=UTF-8import cv2 as cvimport numpy as npdef edge_demo(image): blurred = cv.GaussianBlur(image,(3,3),0) gray = cv.cvtColor(blurred,cv.C原创 2021-02-18 09:19:25 · 180 阅读 · 0 评论 -
opencv学习笔记(12)图像梯度
示例图片:1.sobel算子原理(侵删):OpenCV3学习笔记——Sobel算子解析# coding=UTF-8import cv2 as cvimport numpy as npdef sobel_demo(image): grad_x = cv.Sobel(image,cv.CV_32F,1,0) grad_y = cv.Sobel(image,cv.CV_32F,0,1) gradx = cv.convertScaleAbs(grad_x) grady原创 2021-02-18 07:20:41 · 237 阅读 · 0 评论 -
opencv学习笔记(11)图像二值化
【OpenCV + Python】图像阈值additional tips:1.cv.threshold()相较于cv.adaptive thresholding(),在遇到一张图亮度不同的情况下,效果不行。你可以用一张纸写个一段话,然后拍照的时候故意制造一部分阴影,结果的图片可能在阴影部分全部变成黑的。cv.threshold()还是比较适合灰度直方图呈现二峰特征的图片。...转载 2021-02-16 15:44:28 · 144 阅读 · 0 评论 -
opencv学习笔记(10)模板匹配
有一部分搬运自别人的博客,侵删首先放上别人写的博客,以示尊重:模板匹配(Match Template)模板匹配的工作方式模板匹配的工作方式跟直方图的反向投影基本一样,大致过程是这样的:通过在输入图像上滑动图像块对实际的图像块和输入图像进行匹配。假设我们有一张100x100的输入图像,有一张10x10的模板图像,查找的过程是这样的:(1)从输入图像的左上角(0,0)开始,切割一块(0,0)至(10,10)的临时图像加粗样式**;**(2)用临时图像和模板图像进行对比,对比结果记为c;(3)对比原创 2021-02-14 21:39:25 · 685 阅读 · 0 评论 -
opencv学习笔记(9)边缘保留滤波EPF
高斯双边模糊# coding=UTF-8import cv2 as cvimport numpy as npdef bi_demo(image): dst = cv.bilateralFilter(image,0,50,10) cv.imshow("bi_demo",dst)image = cv.imread("quebangirl.jpg")cv.imshow("input picture",image)bi_demo(image)cv.waitKey(0)cv.de原创 2021-02-13 10:55:26 · 182 阅读 · 0 评论 -
opencv学习笔记(8)高斯噪声与高斯模糊
常见噪声常见的噪声:高斯、泊松和椒盐噪声高斯分布大学本科阶段,大二左右一般都会教的,对这个不了解可以出门右转补一下课,可能会方便后续的理解。高斯噪声的实现import cv2 as cvimport numpy as npdef Gaussian_noise(image): h,w,c = image.shape for row in range(h): for col in range(w): s = np.random.normal原创 2021-02-06 15:17:34 · 782 阅读 · 0 评论 -
opencv学习笔记(8)模糊与锐化操作
## coding=UTF-8import numpy as npimport cv2 as cv#均值模糊,主要用于去掉随机噪声def blur_demo(image): dst = cv.blur(image,(5,5)) cv.imshow("blur_image",dst)#中值模糊,主要用于去除“椒盐噪声”(很形象的名字)def median_blur_demo(image): dst = cv.medianBlur(image,5) cv.imsho原创 2021-02-02 16:03:21 · 534 阅读 · 0 评论 -
opencv学习笔记(7)ROI与泛洪填充
ROI:region of interest的缩写。## coding=UTF-8import numpy as npimport cv2 as cv#读取一张图片bili_png = cv.imread("D:/academic/picture/bili.png")cv.namedWindow("bili_raw",cv.WINDOW_AUTOSIZE)cv.imshow("bili_raw",bili_png)#对图片“切片”face = bili_png[20:400,100:400原创 2021-02-02 14:36:39 · 135 阅读 · 0 评论 -
opencv学习笔记(6)对比度和亮度
# coding=UTF-8import cv2 as cvimport numpy as npdef contrast_brighten_demo(image,c,b):#c为对比度 contrast b 为亮度 brightness cv.imshow("original",image) h,w,ch=image.shape #获取图像尺寸 blank =np.zeros([h,w,ch],image.dtype) #创建一个和图像尺寸相同的纯黑图片 dst=原创 2021-01-18 15:59:44 · 184 阅读 · 1 评论 -
opencv学习笔记(5)掩膜
# coding=UTF-8import cv2 as cvimport numpy as npdef extrace_color_demo(): capture = cv.VideoCapture(0) #获取电脑摄像头权限 while(True): #ret是布尔值,如果读取帧是正确的则返回True #frame是每一帧的图像,是个三维矩阵 ret,frame = capture.read() if ret == False:原创 2021-01-14 13:32:27 · 455 阅读 · 0 评论 -
opencv学习笔记(4)
# coding=UTF-8import cv2 as cvimport numpy as npdef image_space_demo(image): cv.imshow("raw image",image) gray = cv.cvtColor(image,cv.COLOR_BGR2GRAY) cv.imshow("gray",gray) hsv = cv.cvtColor(image,cv.COLOR_BGR2HSV) cv.imshow("hsv",h原创 2020-12-14 11:40:18 · 124 阅读 · 0 评论 -
opencv学习笔记(3)
# coding=UTF-8import cv2 as cvimport numpy as npdef create_image(): img = np.zeros([400,400,3],np.uint8) img[:,:,0] = 1*255 #img的第三个参数为0,蓝;为1,绿;为2,红 cv.imshow("new image",img)create_image()cv.waitKey()cv.destroyAllWindows()效果如下:生成了一原创 2020-12-14 10:21:30 · 161 阅读 · 0 评论 -
opencv学习笔记(2)
首先是最简单的一串代码,显示一张图片。# coding=UTF-8import cv2 as cvimport numpy as npdef access_pixels(image): print(type(image)) #打印出图片的类型 print(image.shape) #打印出图片垂直尺寸、图片水平尺寸、图片通道数(如果有的话) print(image.size) #打印出图片的大小 print(image.dtype) #打印出数组数据类型scr原创 2020-11-25 16:57:09 · 279 阅读 · 1 评论 -
opencv学习笔记(1)
该代码的功能是调出电脑摄像头# coding=UTF-8import cv2 as cvdef video_demo(): capture = cv.VideoCapture(0) #电脑如果只有一个摄像头 那么参数就是0 while(True): ret,frame = capture.read() #capture.read有两个返回值,一个是bool值,表示是否读取到帧;另一个是每一帧的图像,是一个三维矩阵 frame = cv.flip(fr原创 2020-11-24 23:40:40 · 238 阅读 · 0 评论