PIL和opencv打开图片
1.使用PIL的时候
from PIL import Image
img=Image.open("./img/catdog.jpg")
print(img.size)
img.show()
输出为(728, 561)
2.opencv
使用函数cv2.imread(filepath,flags)读入一幅图片,函数默认读取的是一幅彩色图片
filepath:要读入图片的完整路径
flags:读入图片的标志 ,{cv2.IMREAD_COLOR,cv2.IMREAD_GRAYSCALE,cv2.IMREAD_UNCHANGED}
cv2.IMREAD_COLOR:默认参数,读入一副彩色图片,忽略alpha通道,可用1作为实参替代
cv2.IMREAD_GRAYSCALE:读入灰度图片,可用0作为实参替代
cv2.IMREAD_UNCHANGED:读入完整图片,包括alpha通道,可用-1作为实参替代
PS:alpha通道,又称A通道,是一个8位的灰度通道,该通道用256级灰度来记录图像中的透明度复信息,定义透明、不透明和半透明区域,其中黑表示全透明,白表示不透明,灰表示半透明
import cv2
img=cv2.imread("./img/catdog.jpg",cv2.IMREAD_COLOR)
print(img.shape)
cv2.namedWindow('image', 0) # 命名一个窗口
cv2.resizeWindow('image', 600, 500) # 将窗口大小进行调整,这两部主要是为了防止图片过大,屏幕显示不下
cv2.imshow('image', img)
cv2.waitKey(0)
或者
def cv2_show_cv_image(image): # 使用cv2显示cv2打开的图片
cv2.namedWindow('image', 0) # 命名一个窗口
cv2.resizeWindow('image', 600, 500) # 将窗口大小进行调整,这两部主要是为了防止图片过大,屏幕显示不下
cv2.imshow('image', image) # 显示图片
cv2.waitKey(0) # 等待,按任意键跳过,如果没有这个,窗口会是一闪而过
cv2.destroyWindow('image') # 这个和下一句都是关闭窗口,只不过这是关闭指定窗口
# cv2.destroyAllWindows() # 关闭此时cv2所有打开的窗口
# cv2.imwrite('cat.png', image) # cv2保存图片
img=cv2.imread("./img/catdog.jpg",cv2.IMREAD_COLOR)
cv2_show_cv_image(img)
这个cv2.waitKey(0)是必须要有的,没有的话框就是一闪而过。
具体可以看这个链接