首先是最简单的一串代码,显示一张图片。
# coding=UTF-8
import cv2 as cv
import numpy as np
def access_pixels(image):
print(type(image)) #打印出图片的类型
print(image.shape) #打印出图片垂直尺寸、图片水平尺寸、图片通道数(如果有的话)
print(image.size) #打印出图片的大小
print(image.dtype) #打印出数组数据类型
scr = cv.imread("D:/picture/2.jpg") #读取D盘的picture文件夹中的2.jpg文件
cv.imshow("input image",scr) #打开一个叫“input image”的窗口显示scr
access_pixels(scr)
cv.waitKey(0)
cv.destroyAllWindows()
看一下效果:
然后我们再对其中的几个函数一个一个地过一遍,看看修改他们的参数后,会发生什么:
cv2.imread()有两个参数,第一个参数是图片的路径,第二个参数是一个标识,它用来指定图像的读取方式。
在默认情况下,即使图像文件为灰度格式,imread()函数也会返回BGR格式的图像。
下面列出的选项可作为cv2.imread()函数的第二个参数:
IMREAD_ANYCOLOR = 4
IMREAD_ANYDEPTH = 2
IMREAD_COLOR = 1 #如果第二个参数不写的话,默认使用这个
IMREAD_GRAYSCALE = 0
IMREAD_LOAD_GDAL = 8
IMREAD_UNCHANGED = - 1
一般来说,1,0,-1三个用的比较多(至少在我看来…)
什么意思呢?我们试一试,这边我们选用了一张彩色的图片:
# coding=UTF-8
import cv2 as cv
import numpy as np
def access_pixels(image):
print(type(image))
print(image.shape)
print(image.size)
print(image.dtype)
print('-----------')
scr = cv.imread("D:/picture/2.jpg")
cv.imshow("input image",scr)
scr_COLOR = cv.imread("D:/picture/2.jpg",1)
cv.imshow("input image_COLOR",scr_COLOR)
scr_GRAYSCALE = cv.imread("D:/picture/2.jpg",0)
cv.imshow("input image_scr_GRAYSCALE",scr_GRAYSCALE)
scr_UNCHANGED = cv.imread("D:/picture/2.jpg",-1)
cv.imshow("input image_UNCHANGED",scr_UNCHANGED)
access_pixels(scr)
access_pixels(scr_COLOR)
access_pixels(scr_GRAYSCALE)
access_pixels(scr_UNCHANGED)
cv.waitKey(0)
cv.destroyAllWindows()
而用灰度图就是这样的效果:
大家自己操作一下,对比对比,就很容易发现:
cv2.namedWindow()函数有两个参数。
参数1:新建的窗口的名称。
参数2:窗口的标识,默认值是WINDOW_AUTOSIZE。
参数2有3种可选择的参数,分别是:
cv2.imshow()函数有两个参数。
参数1:需要载入的图片的路径名。
参数2:加载图像的颜色类型。若为1,则返回彩图;若为0,返回灰图。