赞
踩
今天第一次装了opencv,强大的图像处理库,于是我们先上安装过程
我是在conda环境下安装的,选择自己的python环境
conda activate pytorch
然后执行下面安装opencv,默认是最新版本。
pip install opencv-python
pip install opencv-contrib-python
安装完毕后
进行检查安装是否成功
(pytorch) C:\Users\j00431635>python
Python 3.8.5 (default, Sep 3 2020, 21:29:08) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'4.5.5'
>>>
能成功输出cv的版本即可成功。
然后下面我们基于已有的一些图像处理的知识做一些好玩的练练手,代码是抄袭的,但是每一个步骤我们需要看懂,每个个运算函数过程后面的数学原理和图像处理原理我们得搞明白,这样方便我们以后使用。
参考自:https://zhuanlan.zhihu.com/p/62703610
import cv2 # cap = cv2.VideoCapture('D:/KK_Movies/kk 2022-01-23 18-27-04.mp4') cap = cv2.VideoCapture('D:/KK_Movies/kk 2022-01-23 18-21-21.mp4') while True: ret, frame = cap.read() # 获得图像的每一帧 if frame is None: break # 图像灰度化 img_gray = cv2.cvtColor(frame, cv2.COLOR_RGB2GRAY) # 高斯模糊 img_blurred = cv2.GaussianBlur(img_gray, (3, 3), 0) # 图像二值化,采用自适应二值化 img_threshold1 = cv2.adaptiveThreshold(img_blurred, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 5, 2) # 再次对二值化图像进行模糊 img_threshold1_blurred = cv2.GaussianBlur(img_threshold1, (3, 3), 0) # 再次进行二值化 _, img_threshold2 = cv2.threshold(img_threshold1_blurred, 200, 255, cv2.THRESH_BINARY) # 对图像进行开区间操作,其实就是膨胀和腐蚀操作 kernel = cv2.getStructuringElement(cv2.MORPH_RECT,(3, 3)) # 得到一个3*3的核 # 因此当我们对一个图像先腐蚀再膨胀的时候,一些小的区块就会由于腐蚀而消失,再膨胀回来的时候大块区域的边线的宽度没有发生变化,这样就起到了消除小的噪点的效果。图像先腐蚀再膨胀的操作就叫做开运算。 img_opening = cv2.bitwise_not(cv2.morphologyEx(cv2.bitwise_not(img_threshold2), cv2.MORPH_OPEN, kernel)) # 再次对二值化图像进行模糊 img_opening_blurred = cv2.GaussianBlur(img_opening, (3, 3), 0) # 最后展示代码 cv2.imshow('img_opening_blurred', img_opening_blurred) # 按下q键就退出 if cv2.waitKey(40) & 0xFF == ord('q'): break # 程序退出后,就毁灭窗口。 cv2.destroyAllWindows()
下面看下试验效果
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。