opencv中的imread函数用法:
cv2.imread(filename, flags=None)
其中第一个参数是载入图片名字,第二个参数是int类型的flags,为载入标识,它指定一个加载图像的颜色类型。可以看到它自带缺省值1。
其中:
flags =1返回一个3通道的彩色图像
flags =0返回灰度图像。
flags <0返回包含Alpha通道的加载的图像。
用函数的时候没有设置第二个参数,就会默认值为1。
尽管读入的是灰度图,还是会自动转化成三通道图像。
可以将第二个参数置为0得到灰度图像
import cv2 as cv2
image = cv2.imread("run.png", 0)
cv2.imwrite("C:\\Users\\Administrator\\Desktop\\My_Study\\CV\\run_huiidu.jpg", image)
image_huidu = cv2.imread("run_huiidu.jpg")
print(image_huidu)
cv2.imshow("run1", image_huidu)
cv2.imshow("run_huidu", image_huidu)
cv2.waitKey() # 1000ms为1s,在等待时间结束前图片仍可以通过按下任意键提前结束
cv2.destroyAllWindows()
image_color = cv2.imread("run.png")
print("获取色彩图像的属性")
print("shape =", image_color.shape)
print("size =", image_color.size)
print("dtype =", image_color.dtype)
image_Gray = cv2.imread("run_huiidu.jpg",0)
print("获取灰度图像的属性")
print("shape =", image_Gray.shape)
print("size =", image_Gray.size)
print("dtype =", image_Gray.dtype)
[[[255 255 255]
[255 255 255]
[255 255 255]
...
[255 255 255]
[255 255 255]
[255 255 255]]
[[255 255 255]
[255 255 255]
[255 255 255]
...
[255 255 255]
[255 255 255]
[255 255 255]]
[[255 255 255]
[255 255 255]
[255 255 255]
...
[255 255 255]
[255 255 255]
[255 255 255]]
...
[[253 253 253]
[253 253 253]
[255 255 255]
...
[234 234 234]
[249 249 249]
[249 249 249]]
[[252 252 252]
[253 253 253]
[255 255 255]
...
[249 249 249]
[254 254 254]
[252 252 252]]
[[252 252 252]
[253 253 253]
[255 255 255]
...
[250 250 250]
[251 251 251]
[250 250 250]]]
获取色彩图像的属性
shape = (300, 300, 3)
size = 270000
dtype = uint8
获取灰度图像的属性
shape = (300, 300)
size = 90000
dtype = uint8
进程已结束,退出代码为 0