1.图像的IO操作
1.1读取图像
cv.imread()
1:彩色图像 0 :灰度图像 -1:alpha通道图像
1.2显示图像
cv.imshow()/plt.imshow()
参数:
- 显示图像的窗口名称(以字符串表示);
- 要记载的图像;
注意:要调用**cv.waitKey()**给图像绘制留下时间,否则窗口会出现无响应情况,并且图像无法显示出来。
1.3保存图像
cv.imwrite()
参数:文件名 要保存在哪里 要保存的图像
1.4总结
#导入cv模块
import numpy as np
import cv2 as cv
import matplotlib.pyplot as plt
# 1.OpenCv显示图像
#读取图像
img = cv.imread("a.jpg")
#显示图片
cv.imshow("read_img",img)
#等待
cv.waitKey(0)
#释放内存
cv.destroyAllWindows()
# 2.matplotlib显示图像
plt.imshow(img[:,:,::-1])
plt.show()
#保存
cv.write("images/a-baocun.png",img)
2.绘制几何图形
2.1绘制直线
cv.line(img,start,end,color,thickness)
参数:
- img:要绘制直线的图像;
- start,end: 直线的起点和终点;
- color: 线条颜色;
- thickness: 线条密度;
2.2绘制圆形
cv.circle(img, centerpoint, r, color, thickness)
参数:
- img:要绘制圆形的图像;
- centerpoint, r: 圆心和半径;
- color: 线条颜色;
- thickness: 线条密度,为-1时生成闭合图案并填充颜色;
2.3绘制矩形
cv.rectangle(img, leftupper, rightdown, color, thickness)
参数:
- img:要绘制的图像;
- leftupper, rightdown: 左上角和右下角的坐标;
- color: 线条颜色;
- thickness: 线条密度;
2.4向图像中添加文字
cv.putText(img, text, startion, font, fontsize, color, thickness, cv.LINE_AA)
参数:
- img:图像;
- text: 文本数据;
- startion: 字体放置位置;
- font:字体;
- fontsize:字体大小;
- color: 字体颜色;
- thickness: 字体密度;
2.5展示效果
#导入cv模块
import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
# 1 创建一个空白的图像
img = np.zeros((512, 512, 3), np.uint8)
# 2 绘制图像
cv.line(img, (0, 0), (511, 511), (255, 0, 0), 5)
cv.rectangle(img, (384, 0), (510, 128), (0, 255, 0), 3)
cv.circle(img, (447, 63), 63, (0, 0, 255), -1)
font = cv.FONT_HERSHEY_SIMPLEX
cv.putText(img, "OpenCv", (10, 500), font, 4, (255, 255, 255), 2, cv.LINE_AA)
plt.imshow(img[:, :, ::-1])
plt.show()
效果如下:
|