Python图像处理使用到的库是opencv-python。
安装库命令:
复制代码
pip install opencv-python
我是在windows上做测试,使用的是Anaconda来安装,这就比较简单了,图形化界面操作。具体使用请移步《Python(三)开源的Python包管理器 anaconda——window安装》
我这里也只是简单的使用opencv的一些功能。
具体更多详细的功能请参照opencv中文文档:woshicver.com/
这部分文档是由英文翻译成中文的,可能有偏差,谨慎阅读。
也放一下opencv的官方文档吧,谷歌翻译的还不如上边的中文文档。翻译的结果那都不是人话。
一:使用opencv读取图片
python
复制代码
# 引入 opencv模块 import cv2 as cv # 读取图片 img = cv.imread('tu.jpg') # 展示图片 cv.imshow('tu.jpg',img)
运行程序,结果如下图所示:
二:将图片进行灰度转换
python
复制代码
# 引入 opencv模块 import cv2 as cv # 将图片进行灰度转换 gray_img = cv.cvtColor(img,cv.COLOR_BGR2GRAY) cv.imshow('gray_img',gray_img)
三:获取原图片尺寸:
scss
复制代码
print(gray_img.shape)
输出:
(1080, 1920, 3)
图片高为1080,宽为1920.
四:图片尺寸缩放
图片缩放这里要着重的说一下,我也是初学,可能是我没有找到,参数中必须同时设置宽高才可以,不能想css中那样,设置宽高其中一个值,而让另一个值根据比例缩放,不知道是我没有找到对应的写法,还是就没有这个功能。我这里缩放使用的还是根据其原始比例来设置缩放:
ini
复制代码
# 引入 opencv模块 import cv2 as cv # 读取图片 img = cv.imread('tu.jpg') # 展示图片 cv.imshow('tu.jpg',img) # 图片尺寸缩放 resize_img = cv.resize(img,dsize=(1366,768)) cv.imshow('resize_img',resize_img)
运行程序,如下图所示:
五:绘制矩形
ini
复制代码
# 引入 opencv模块 import cv2 as cv # 读取图片 img = cv.imread('tu.jpg') # 展示图片 cv.imshow('tu.jpg',img) # 绘制矩形 x, y, w, h = 100, 100, 100, 100 # 注意传递参数个数 (图片对象,左上角坐标,右下角坐标,绘制线颜色,线宽度) cv.rectangle(img, (x, y), (x+w, y+h), color=(0, 255, 0), thickness=3) cv.imshow('resize_img', img)
运行程序,如下图所示:
六:绘制圆形
ini
复制代码
# 绘制圆 x, y, z = 500, 500, 300 #(图片对象,圆心坐标,半径,绘制线颜色,线宽度) cv.circle(img,center=(x,y),radius=z,color=(0,0,255),thickness=3) cv.imshow('resize_img', img)
运行程序,如下图所示:
最后,放一下测试使用全部代码:
ini
复制代码
#!/usr/bin/python3 # -*- coding: utf-8 -*- # @Time : 2022/3/22 19:15 # @Author : stone # @Email : 805795955@qq.com # @File : task.py # @Software: PyCharm # 引入 opencv模块 import cv2 as cv # 读取图片 img = cv.imread('tu.jpg') # 展示图片 cv.imshow('tu.jpg',img) # 将图片进行灰度转换 gray_img = cv.cvtColor(img,cv.COLOR_BGR2GRAY) cv.imshow('gray_img',gray_img) # 获取原图片尺寸: print(img.shape) # # 图片尺寸缩放 resize_img = cv.resize(img,dsize=(1366,768)) cv.imshow('resize_img',resize_img) # 绘制矩形 x, y, w, h = 100, 100, 100, 100 # 注意传递参数个数 # (图片对象,左上角坐标,右下角坐标,绘制线颜色,线宽度) cv.rectangle(img, (x, y), (x+w, y+h), color=(0, 255, 0), thickness=3) cv.imshow('resize_img', img) # 绘制圆 x, y, z = 500, 500, 300 # (图片对象,圆心坐标,半径,绘制线颜色,线宽度) cv.circle(img,center=(x,y),radius=z,color=(0,0,255),thickness=3) cv.imshow('resize_img', img) # 按esc 程序退出 while True: if 27 == cv.waitKey(0): cv.destroyAllWindows() # num = cv.waitKey(0) # print(num)
有好的建议,请在下方输入你的评论。