700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > opencv+python实战日记 入门篇(一)车牌识别 捕捉录像 图片灰度化 图像模糊化

opencv+python实战日记 入门篇(一)车牌识别 捕捉录像 图片灰度化 图像模糊化

时间:2018-11-26 10:34:00

相关推荐

opencv+python实战日记 入门篇(一)车牌识别 捕捉录像 图片灰度化  图像模糊化

目录

捕捉录像

图片灰度化

图像模糊化处理

图像边缘化处理

图像膨胀和腐蚀

参考链接(bilibili):我愿称之为史上最强opencv,难得看到有人把opencv讲的如此通俗易懂_哔哩哔哩_bilibili

搭建好python环境后,在文件--setting里下载包opencv python,然后就可一开始代码啦。实在看不懂可以看这个b站视频,里面的环境搭建很详细。

捕捉录像

这段代码是导入电脑摄像头 按q结束。VideoCapture("文件目录"),可以得到目标文件,而示例代码中的参数0是获取自己电脑的摄像头。

int waitKey(int delay=0)delay:为0时,则会一直显示这一帧

import cv2cap = cv2.VideoCapture(0)#获取摄像头cap.set(3,640)cap.set(4,480)cap.set(10,100)#调节亮度while True:success, img = cap.read()cv2.imshow("video",img)if cv2.waitKey(1) & 0xFF == ord('q'):break

图片灰度化

下面的代码是能够将图片灰度化。cvtcolor()函数,cvt是convert(转换)的缩写,简单理解这个函数为将图像从一个颜色空间转换为另一个颜色空间。

import cv2img = cv2.imread("sources/lena.webp")#灰度化处理imgGray = cv2.cvtColor(img,cv2.COLOR_RGB2GRAY)cv2.imshow("Gray Image",imgGray)cv2.waitKey(0)

这是灰度化处理之后的图像

图像模糊化处理

GaussianBlur函数,高斯滤波(平滑处理、图像降噪)处理。void GaussianBlur(InputArray src, OutputArray dst, Size ksize, double sigmaX, double sigmaY=0, int borderType=BORDER_DEFAULT);

src指的是输入图像;dst为目标图像;ksize,高斯内核的大小;sigmaX,表示高斯核函数在X方向的的标准偏差;sigmaY,表示高斯核函数在Y方向的的标准偏差;

import cv2img = cv2.imread("sources/lena.webp")#灰度化处理imgGray = cv2.cvtColor(img,cv2.COLOR_RGB2GRAY)#高斯滤波处理imgBlur = cv2.GaussianBlur(imgGray,(7,7),0)cv2.imshow("Gray Image",imgGray)cv2.imshow("Blur Image",imgBlur)cv2.waitKey(0)

处理之后的图像对比

图像边缘化处理

需要注意的是,边缘检测只能对灰度图像进行处理,并且在进行边缘化处理之前,要先进行降噪,否则效果会很差。这里用到的是canny函数,一种非常重要的算法,这是坎尼在1986年写的一篇论文里仔细论述的。他给出了判断边缘提取方法性能的指标。而坎尼算子也是图像处理领域里的标准方法,也可以说是默认的方法。

import cv2img = cv2.imread("sources/lena.webp")#灰度化处理imgGray = cv2.cvtColor(img,cv2.COLOR_RGB2GRAY)#高斯滤波处理imgBlur = cv2.GaussianBlur(imgGray,(7,7),0)#图像边缘化处理imgCanny = cv2.Canny(img,100,100)cv2.imshow("Gray Image",imgGray)cv2.imshow("Blur Image",imgBlur)cv2.imshow("Canny Image",imgCanny)cv2.waitKey(0)

图像膨胀和腐蚀

这里导入了numpy库,没下的宝宝们记得去下载哦。在文件-settings--project:python project--project interprete里的+号,搜索numpy下载就可以啦。然后定义核:kenel

图像膨胀的详细说明可以看这个链接,说的很好理解。主要就是更好的区分主题和背景数字图像处理---通俗理解腐蚀与膨胀_alw_123的博客-CSDN博客_图像腐蚀和膨胀的作用

import cv2import numpy as npimg = cv2.imread("sources/lena.webp")kenel = np.ones((5,5),np.uint8)#灰度化处理imgGray = cv2.cvtColor(img,cv2.COLOR_RGB2GRAY)#高斯滤波处理imgBlur = cv2.GaussianBlur(imgGray,(7,7),0)#图像边缘化处理imgCanny = cv2.Canny(img,100,100)#图像膨胀imgDialation = cv2.dilate(imgCanny,kenel,iterations=1)cv2.imshow("Gray Image",imgGray)cv2.imshow("Blur Image",imgBlur)cv2.imshow("Canny Image",imgCanny)cv2.imshow("Dialation Image",imgDialation)cv2.waitKey(0)

以下是图像膨胀和侵蚀后的图片,可以看出图像更加纯净了

opencv+python实战日记 入门篇(一)车牌识别 捕捉录像 图片灰度化 图像模糊化处理 图像边缘化处理 图像膨胀和腐蚀

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。