文章目录
1、opencv读取图片
- cv2.imread()方法封装了4个步骤,分别为:
- 1、文件的读取 2、封装格式解析 3、数据解码 4、数据加载
import cv2
# 1、文件的读取 2、封装格式解析 3、数据解码 4、数据加载
img = cv2.imread('image1.jpg', 1) #1表示彩色图片
#图片展示
cv2.imshow('image', img)
#释放资源
cv2.waitKey(0)
cv2.destroyAllWindows()
2、opencv保存图片
import cv2
# 1、文件的读取 2、封装格式解析 3、数据解码 4、数据加载
img = cv2.imread('image1.jpg', 1) #1表示彩色图片
#图片保存
# 1、jpg,png 文件头 2、文件数据
cv2.imwrite('image1.png', img)#返回结果为True,表示写入成功
3、图像质量压缩
3.1、有损压缩——jpg格式
- 参数cv2.IMWRITE_JPEG_QUALITY的压缩范围是0~100,有损压缩以牺牲图片像素为前提
import cv2
img = cv2.imread('image1.jpg', 1)
cv2.imwrite('imageTest.jpg', img, [cv2.IMWRITE_JPEG_QUALITY, 0])
3.2、无损压缩——png格式
- cv2.IMWRITE_PNG_COMPRESSION 压缩比0~9
import cv2
img = cv2.imread('image1.jpg', 1)
cv2.imwrite('imageTest.png', img, [cv2.IMWRITE_PNG_COMPRESSION, 0])#压缩比0~9
总结: jpg的0 压缩比高 0~100; png的0 压缩比低 0 ~ 9
4、像素操作
4.1、像素值的读取
import cv2
img = cv2.imread('image1.jpg', 1)
#采集图片坐标为(100,100)的像素点,返回方式为元组
(b, g, r) = img[100, 100]
print (b, g, r)
232 240 240
4.2、像素值的写入
import cv2
img = cv2.imread('image1.jpg', 1)
# 绘制一条(100,100) ————> (100,600)的坚状红线
for i in range(1,500):
img[100+i, 100] = (0, 0, 255)#和坐标系方向相反,[100+i, 100]=[y, x]
cv2.imshow('image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
5、图片缩放
5.1、查看图片宽高
import cv2
img = cv2.imread('image1.jpg', 1)
imgInfo &#