1.图像的基本操作
1-1 读取图像
1.API
cv.imread()
参数:
- (要读取的图像 )
- (读取方法的标志)
(1) cv.IMREAD*COLOR: (默认参数)以彩色模式加载图像,任何乳香的透明度都将被忽 略。
(0) cv.IMREAD*GRAYSCALE: 以灰度模式加载图像
(-1) cv.IMREAD_UNCHANGED: 包括alpha通道的加载图像模式
可以使用1、0或者-1来代替上面三个标志
1-2 显示图像
1.API
cv.imshow()
参数:
- (显示图像的后窗口名称,以字符串类型表示)
- (要加载的图像)
注意:在调用显示图像的API后,要调用 cv.waitKey() 给图像绘制留下时间,否则窗口会出现无响应情况,并且图像无法显示出来
另外我们也可以使用matplotib对图像进行展示。
参考代码
import cv2 as cv #(导入OopenCV库)
img = cv.imread('111.jpg',1) #读取图片
cv.imshow('1111',img) #显示图像
cv.waitKey(0) #延时函数用于界面保留
1-3 保存图像
1.API
cv.imwrite()
参数:
(保存的位置 也可以重命名)(要保存的图像)
注意:在调用显示图像的API后,要调用 cv.waitKey() 给图像绘制留下时间,否则窗口会出现无响应情况,并且图像无法显示出来
另外我们也可以使用matplotib对图像进行展示。
参考代码
cv.imwrite("333.png",img)
1-4 总结
import matplotlib.pyplot as plt
import cv2 as cv #(导入OopenCV库)
img = cv.imread('111.jpg',1) #读取图片
plt.imshow(img[:,:,::-1]) #显示图片
plt.show()
cv.imwrite("333.png",img)
2 绘制几何图片
2.1绘制直线
API
cv.line(img,start,end,color,thickness)
参数:
- img:要绘制直线的图像
- start end :直线的终点和起点
- color:线条的颜色
- Thickness:线条的宽度
2.2绘制圆形
API
cv.circle(img,centerpoint,r,color,thickness)
参数:
- img:要绘制的图像
- centerpoint:圆心
- r :半径
- thickness:线条宽度,为-1时生成闭图案并填充颜色
2.3 绘制矩形
API
cv.rectangle(img,leftupper,righdown,color,thickness)
参数:
- img: 要绘制的矩形图像
- leftupper 矩形的上角坐标
- righdown: 矩形的下角坐标
- color: 线条的颜色
- thickness: 线条宽度
2.4向图中添加文字
API
cv.putText(img,text,station,font,fontsize,color,thickness,cv.LINE_AA)
参数:
- img: 图像
- text: 要写入的文字
- station: 文本摆放位置 左下角
- font: 字体类型
- Fontsize:字体大小
总结:
import cv2 as cv
#导入 OpenCV 库,并使用别名 cv,OpenCV 是一个用于计算机视觉任务的强大库,包括图像和视频处理等。
import numpy as np
#导入 NumPy 库,别名 np。NumPy 提供了高效的多维数组对象和用于处理这些数组的各种函数,在图像处理中常用于表示图像数据和进行数值计算。
import matplotlib.pyplot as plt
#导入 Matplotlib 的 pyplot 模块,别名 plt。Matplotlib 是一个用于绘制图表和可视化数据的库,这里将用于显示图像。
# 原本是生成一个黑色的 512x512 的三通道图像,这里注释掉,因为后面会读取一张图片
# img = np.zeros((512, 512, 3), np.uint8) #生成一个图片
# 读取名为'111.jpg'的图片,第二个参数 1 表示以彩色模式读取
img = cv.imread('111.jpg', 1)
# 在读取的图像上绘制一条从坐标点 (0,0) 到 (512,512) 的蓝色直线,线宽为 5
cv.line(img, (0, 0), (512, 512), (255, 0, 0), 5)
# 在图像上绘制一个绿色矩形,左上角坐标为 (384,0),右下角坐标为 (510,128),线宽为 3
cv.rectangle(img, (384, 0), (510, 128), (0, 255, 0), 3)
# 在图像上绘制一个红色圆形,圆心坐标为 (447,63),半径为 63,-1 表示填充圆形内部
cv.circle(img, (447, 63), 63, (0, 0, 255), -1)
# 设置字体为 HERSHEY_SIMPLEX
font = cv.FONT_HERSHEY_SIMPLEX
# 在图像上绘制文本
cv.putText(img, "OpenCV!",(10,500),font,4,(255,255,255),2,cv.LINE_AA)
# 使用 Matplotlib 显示图像,将图像的通道顺序反转,因为 OpenCV 使用 BGR 顺序,而 Matplotlib 期望 RGB 顺序
plt.imshow(img[:,:,::-1])
plt.show()
#cv.imshow("111",img)
cv.waitKey(0)
3 获取并修改图片中的像素点
3.1读取像素
API
返回值 = 图(位置参数)
blue = img[100,100,0] #读取像素蓝色
我们可以通过行列的坐标值获取该像素点的像素值。对于BGR图像,它返回一个蓝,绿,红的数组。对于灰度图像,仅仅返回相应的强度值。使用相同的方法对像素值进行修改。
3.2修改像素
灰度图的修改直接赋值
img[22,22]=255
彩色图的修改
img[]
未完待续。。。。。。。。。。。。