一 基本读写图像文件
无论哪种格式,每一个像素都会有一个值,但不同格式表示像素的方式有所不同
调用该函数,可以通过二维NumPy数组来简单创建一个黑色的正方形图像
img=numpy.zeros((3,3),dtype=numpy.uint8)
控制台print一下,可得
[[0 0 0] [0 0 0] [0 0 0]]
该输出有两个[],说明该图像有两条通道,每一个像素都由一个8-bit整数表示,每个像素的范围是(0~255),其中,0表示最黑,255表示最白
使用该函数,可以把图像转化为BGR格式
img=cv2.cvtColor(img,cv2.COLOR_GRAY2BGR)
控制台print一下,可得
[[[0 0 0] [0 0 0] [0 0 0]]
[[0 0 0] [0 0 0] [0 0 0]]
[[0 0 0] [0 0 0] [0 0 0]]]
现在,每个像素点都由一个三元数组,并且每一个二维数组/整形(integer)分别表示一个B/G/R通道
可以通过shape属性来查看图像的结构,它会返回行和列,如果有2个及以上的通道,还会返回通道数
print(img.shape)
返回(414,500,3);414代表高【h】,500代表宽【w】,3是通道数【c】/或者说像素红绿蓝也行
image = cv2.imread('D:/opencv/imgurl/1.png')
cv2.imwrite('D:/opencv/imgurl/1.png',image)
这段代码,读取一张png图片,然后把它保存为jpg格式
grayImage = cv2.imread('D:/opencv/imgurl/1.png',cv2.IMREAD_GRAYSCALE)
cv2.imwrite('D:/opencv/imgurl/1.png',grayImage)
二 打开图像
import cv2
import numpy
img = cv2.imread('D:/opencv/imgurl/2.jpg')
cv2.imshow('p',img)
cv2.waitKey()
cv2.destroyAllWindows()
cv2.imread('D:/opencv/imgurl/1.png')
括号里面得参数是图片的路径
cv2.imshow('openpng',img)
第一个参数是给窗口命名(命名只能是英文),第二个参数是已imread的图像
#等待时间,毫秒级别,0表示任意键终止
cv2.waitKey(1000)
等待键盘输入,函数WaitKey无限地等待一个键事件,如果没有键,则返回-1
触发这段代码,窗口消失
cv2.destroyAllWindows()
关掉所有窗口,销毁内存
三 查询图像的信息
print(type(img1))
print(img1.size)
print(img1.dtype)
|