
opencv_python2021专栏
chencaw
这个作者很懒,什么都没留下…
展开
-
OpenCV__Python 验证码识别_教程30
验证码识别,基于开闭操作(1)先要安装pytesseract工具pip install pytesseract遇到出错,参照一下解决https://blog.youkuaiyun.com/weixin_41644725/article/details/95344924(2)代码#引入opencv模块import cv2 as cv#引入numpy模块import numpy as np#引入sys模块import sysfrom PIL import Imageimport原创 2020-12-08 15:13:52 · 237 阅读 · 0 评论 -
OpenCV__Python 人脸检测_教程29
基于opencv现有模型,adaboost方法注意:眼睛,鼻子什么的也都可以检测,自己换模型就好了#引入opencv模块import cv2 as cv#引入numpy模块import numpy as np#引入sys模块import sys#人脸检测def face_detection(img): gray = cv.cvtColor(img,cv.COLOR_BGR2GRAY) face_detector = cv.CascadeClassifier原创 2020-12-08 14:34:25 · 281 阅读 · 1 评论 -
OpenCV__Python 分水岭算法_教程28
进行图像中对象的分割(1)灰度化(2)二值(3)距离变换(4)寻找种子(5)生成Marker(6)分水岭变换#引入opencv模块import cv2 as cv#引入numpy模块import numpy as np#引入sys模块import sys#分水岭def watershed_test(img): blurred = cv.pyrMeanShiftFiltering(img,10,100) #gray = cv.cvtColor(i原创 2020-12-07 14:00:47 · 311 阅读 · 0 评论 -
OpenCV__Python 顶帽黑帽和形态学梯度_教程27
(1)顶帽(2)黑帽(3)形态学梯度原创 2020-12-05 20:06:56 · 151 阅读 · 0 评论 -
OpenCV__Python 图像的开闭操作_教程26
(1)开操作先腐蚀后膨胀(2)闭操作先膨胀后腐蚀(3)选取合适的参数,可以检测水平和垂直的线1、开操作#引入opencv模块import cv2 as cv#引入numpy模块import numpy as np#引入sys模块import sys#opendef open_test(img): #(1)灰度化,阈值分割,黑色里面找白色!!! gray = cv.cvtColor(img,cv.COLOR_BGR2GRAY) ret,b原创 2020-12-03 14:40:09 · 497 阅读 · 0 评论 -
OpenCV__Python 腐蚀和膨胀_教程25
1、腐蚀,kenerl的参数注意自己要选择下#引入opencv模块import cv2 as cv#引入numpy模块import numpy as np#引入sys模块import sys#erodedef erode_test(img): #(1)灰度化,阈值分割,黑色里面找白色!!! gray = cv.cvtColor(img,cv.COLOR_BGR2GRAY) ret,binary = cv.threshold(gray,0,255,cv.原创 2020-12-03 14:17:35 · 292 阅读 · 0 评论 -
OpenCV__Python 物体检测_教程24
1、方法一、先计算轮廓本人对该方法,基于轮廓计算的实用性表示怀疑,哈哈。(1)先灰度化(2)阈值分割(3)找到轮廓(4)计算获取面积,外接矩,中心点#引入opencv模块import cv2 as cv#引入numpy模块import numpy as np#引入sys模块import sys#measuredef measure_object(img): #(1)灰度化,阈值分割,注意,黑色里面找白色,所以THRESH_BINARY_INV取反了下原创 2020-12-03 13:31:22 · 648 阅读 · 0 评论 -
OpenCV__Python 轮廓检测_教程23
#引入opencv模块import cv2 as cv#引入numpy模块import numpy as np#引入sys模块import sys#countoursdef countours_detection(img): #(1)加滤波,能消除噪声 dst = cv.GaussianBlur(img,(3,3),0) gray = cv.cvtColor(dst,cv.COLOR_BGR2GRAY) ret,binary = cv.threshol...原创 2020-12-02 10:31:54 · 275 阅读 · 0 评论 -
OpenCV__Python 圆形检测Hough_教程22
1圆形检测hough对噪声比较敏感,建议先进行中值滤波调节参数,可以实现更好的识别,或者适应自己的识别#引入opencv模块import cv2 as cv#引入numpy模块import numpy as np#引入sys模块import sys#circledef circle_detection(img): #epf边缘滤波 dst = cv.pyrMeanShiftFiltering(img,10,100) cimg = cv.cvtCo.原创 2020-12-01 11:12:07 · 669 阅读 · 0 评论 -
OpenCV__Python 直线检测Hough_教程21
#引入opencv模块import cv2 as cv#引入numpy模块import numpy as np#引入sys模块import sys#linedef line_detection(img): blurred = cv.GaussianBlur(img,(5,5),0) gray = cv.cvtColor(blurred,cv.COLOR_BGR2GRAY) edge_output = cv.Canny(gray,50,150,apertur...原创 2020-11-28 15:19:38 · 240 阅读 · 0 评论 -
OpenCV__Python canny边缘检测_教程20
#引入opencv模块import cv2 as cv#引入numpy模块import numpy as np#引入sys模块import sys#cannydef canny_test(img): blurred = cv.GaussianBlur(img,(3,3),0) gray = cv.cvtColor(blurred,cv.COLOR_BGR2GRAY) grad_x = cv.Sobel(gray,cv.CV_16SC1,1,0) gr...原创 2020-11-28 14:46:05 · 271 阅读 · 0 评论 -
OpenCV__Python sobel算子_教程19
1、Sobel算子和Scharrdst = cv2.Sobel(src, ddepth, dx, dy[, dst[, ksize[, scale[, delta[, borderType]]]]])前四个是必须的参数:第一个参数是需要处理的图像; 第二个参数是图像的深度,-1表示采用的是与原图像相同的深度。目标图像的深度必须大于等于原图像的深度; dx和dy表示的是求导的阶数,0表示这个方向上没有求导,一般为0、1、2。其后是可选的参数:dst不用解释了; ksize.原创 2020-11-28 13:39:43 · 494 阅读 · 0 评论 -
OpenCV__Python图像金字塔_教程18
#引入opencv模块import cv2 as cv#引入numpy模块import numpy as np#引入sys模块import sys#图像金字塔def pyramid_demo(img): level = 3 temp = img.copy() pyramid_img = [] for i in range(level): dst = cv.pyrDown(temp) pyramid_img.append(ds.原创 2020-11-28 13:02:16 · 127 阅读 · 0 评论 -
OpenCV__Python图像的二值化_教程17
图像分割,阈值分割(1)自动阈值分割(2)手动设定阈值分割(3)局部自适应阈值分割(4)自己简单计算阈值分割典型代码如下#引入opencv模块import cv2 as cv#引入numpy模块import numpy as np#引入sys模块import sys#自动阈值分割方法1 OTSU,根据灰度统计def threshold_otsu(img): gray = cv.cvtColor(img,cv.COLOR_BGR2GRAY) .原创 2020-11-28 09:25:52 · 404 阅读 · 1 评论 -
OpenCV__Python模板匹配_教程16
大图里面找小图原创 2020-11-28 08:37:39 · 280 阅读 · 0 评论 -
OpenCV__Python直方图反向投影_教程15
直方图反向投影,2d直方图#引入opencv模块import cv2 as cv#引入numpy模块import numpy as np#引入sys模块import sys#引入matplotlib模块from matplotlib import pyplot as plt#直方图均衡化,用在灰度图上def back_projection_test(): sample = cv.imread('E:/chenopencvblogimg/zhuqiusample.jpg')原创 2020-11-27 19:37:20 · 189 阅读 · 1 评论 -
OpenCV__Python直方图比较_教程14
#引入opencv模块import cv2 as cv#引入numpy模块import numpy as np#引入sys模块import sys#创建RGB直方图def create_rgb_hist(img): h,w,c = img.shape rgbHist = np.zeros([16*16*16,1],np.float32) bsize = 256/16 for row in range(h): for col in range.原创 2020-11-27 19:01:27 · 317 阅读 · 0 评论 -
OpenCV__Python直方图_教程13
用到了matlab画图模块matplotlib还没安装的话:pip installmatplotlib用到了函数典型代码如下#引入opencv模块import cv2 as cv#引入numpy模块import numpy as np#引入sys模块import sys#引入matplotlib模块from matplotlib import pyplot as plt#绘制直方图def image_hist(img): color = ('blue.原创 2020-11-26 20:07:51 · 146 阅读 · 0 评论 -
OpenCV__Python边缘保留滤波EPF_教程12
边缘保留滤波1.高斯双边滤波类似于实现美颜功能bilateralFilter()函数可以对图像进行双边滤波。关于2个sigma参数:简单起见,可以令2个sigma的值相等; 如果他们很小(小于10),那么滤波器几乎没有什么效果; 如果他们很大(大于150),那么滤波器的效果会很强,使图像显得非常卡通化;关于参数d:过大的滤波器(d>5)执行效率低。 对于实时应用,建议取d=5; 对于需要过滤严重噪声的离线应用,可取d=9; d>0时,由d指定邻域直径;原创 2020-11-26 13:44:17 · 286 阅读 · 0 评论 -
OpenCV__Python图像的滤波(模糊)_教程11
1:均值滤波均值滤波是一种线性滤波器,处理思路也很简单,就是将一个窗口区域中的像素计算平均值,然后将窗口中计算得到的均值设置为锚点上的像素值。该算法有优点在于效率高,思路简单。同样,缺点也很明显,计算均值会将图像中的边缘信息以及特征信息“模糊”掉,会丢失很多特征。均值滤波使用简单的卷积方案来实现,既然是计算窗口区域中的像素和,即使用如下卷积核即可。图像的边界部分采用padding操作处理。另外,得到的锚点像素值要进行归一化,即除以窗口尺寸大小。在OpenCV中,我们使用cv.blur()这个函数原创 2020-11-26 10:53:59 · 457 阅读 · 0 评论 -
OpenCV__Python的ROI图像操作_教程10
1、ROI操作图像的 ROI(region of interest) 是指图像中感兴趣区域、在 OpenCV 中图像设置图像 ROI 区域,实现只对 ROI 区域的操作。典型的例子如下:#引入opencv模块import cv2 as cv#引入numpy模块import numpy as np#引入sys模块import sysdef img_test(): img = cv.imread('E:/chenopencvblogimg/lena.jpg') #判原创 2020-11-26 09:37:39 · 3320 阅读 · 0 评论 -
OpenCV__Python图像的对比度亮度调整_教程9
1、图像的对比度亮度调整方法一通过np.clip函数进行调整numpy.clip(x, x_min, x_max, out=None)[source]其中a是一个数组,后面两个参数分别表示最小和最大值,也就是说clip这个函数将将数组中的元素限制在x_min, x_max之间,大于x_max的就使得它等于 x_max,小于x_min,的就使得它等于x_min。import numpy as npx=np.array([1,2,3,4,5,6,7,8,9])dst = np.clip原创 2020-11-25 09:17:06 · 5641 阅读 · 1 评论 -
OpenCV__Python图像的加减乘除运算_教程8
图像的加减乘除运算运算在很多地方用到,比如说,在一幅杂论的图中减去背景,比如说运动检测。比如说多个检测的合成。原创 2020-11-25 08:10:43 · 1994 阅读 · 1 评论 -
OpenCV__Python颜色空间RGB和HSV_教程7
1、颜色空间有很多种,基础知识下次有空我补上主要的颜色空间有RGB,HSV,HSI,LAB,YUV,YCrCb典型的颜色空间转换代码如下#引入opencv模块import cv2 as cv#引入numpy模块import numpy as np#引入sys模块import sys#颜色空间测试def color_space_test(img): #转换为gray gray = cv.cvtColor(img,cv.COLOR_BGR2GRAY) cv原创 2020-11-16 19:04:16 · 723 阅读 · 0 评论 -
OpenCV__Python创建一幅图__教程6
1、可以通过np创建数组,典型的代码为:img = np.zeros([H,W,C],np.uint8)img = np.ones([H,W,C],np.uint8)#引入opencv模块import cv2 as cv#引入numpy模块import numpy as np#引入sys模块import sys#读取并输出图像像素值def showimagepixel(img): #输出图像像素 pixel_data=np.array(img) pri原创 2020-11-16 14:32:04 · 935 阅读 · 0 评论 -
OpenCV__Python通过getTickCount计算程序运行花费的时间__教程5
可以自己查看opencv相应的文档https://docs.opencv.org/4.2.0/db/de0/group__core__utils.html#gae73f58000611a1af25dd36d496bf4487主要用到如下两个函数1、函数说明如下:cv::getTickCount()可以用来测量一段代码的运行时间,这个函数返回从上次开机算起的时钟周期数。cv::getTickFrequency()返回的是每秒钟的时钟格式2、基础使用框架#(1)需要开...原创 2020-11-15 07:07:06 · 1255 阅读 · 0 评论 -
OpenCV_Python_对像素的循环操作__教程4
接着第3个教程的图像,和图像的格式的理解,我们可以对一幅图就行像素的操作和修改。所谓图像处理、视觉检测就是在像素上对图像内容进行检测。代码如下#引入opencv模块import cv2 as cv#引入numpy模块import numpy as np#引入sys模块import sys#读取并输出图像像素值def showimagepixel(img): #输出图像像素 pixel_data=np.array(img) print(pixel_dat原创 2020-11-15 06:47:59 · 599 阅读 · 0 评论 -
opencv中图像的格式和imshow如何看很大很多小的图和自动适应namedWindow()__教程3
1、OpenCV中图像的格式(1)opencv读取图像后可以获得图像的长,宽,高,格式为HWC格式最简单的测试例子如下#引入opencv模块import cv2 as cv#获取图片的相应信息def imageformat(img): print('image type: ' + str(type(img))) #输出图像对象的类型 print('image shape: ' + str(img.shape)) #输出图像对象尺寸 print原创 2020-11-14 06:46:29 · 3265 阅读 · 1 评论 -
opencv_python_读取中文路径图片怎么办?_教程2
1、首先建议大家入门学习的时候,文件名称和目录全部用英文,说3遍,说3遍,说3遍!2、opencv读取中文路径的时怎么办?3、如将lenargb.jpg的路径设置为"E\陈\lenargb.jpg"#引入opencv模块import cv2 as cv#查看opencv的版本print(cv.__version__)#读取图片img = cv.imread('E:\陈\lenargb.jpg')#判断是否读取成功if img is None: print("Could .原创 2020-11-06 10:47:46 · 676 阅读 · 1 评论 -
opencv_python_读取图片和显示_教程1
1、python引入opencv模块import cv2 as cv2、今年是2020年,opencv已经20周年了,opencv的官网为:https://opencv.org/3、查看你自己的opencv版本#引入opencv模块import cv2 as cv#查看opencv的版本print(cv.__version__)比如我现在的电脑,能看到输出4、重要的事情这里先说3遍,说3遍,说3遍。要学会自己看api函数,选择对应版本更好!https://d原创 2020-11-06 10:32:24 · 1276 阅读 · 0 评论