1、OpenCV中图像的格式
(1)opencv读取图像后可以获得图像的长,宽,高,格式为HWC格式
最简单的测试例子如下
#引入opencv模块
import cv2 as cv
#获取图片的相应信息
def imageformat(img):
print('image type: ' + str(type(img))) #输出图像对象的类型
print('image shape: ' + str(img.shape)) #输出图像对象尺寸
print('image size: ' + str(img.size)) #输出图像对象大小
print('image dtype: ' + str(img.dtype)) #输出图像对象数据类型
#读取图片
img = cv.imread('E:\lena150W200H.jpg')
#判断是否读取成功
if img is None:
print("Could not read the image,may be path error")
#显示图像
cv.imshow("Display window", img)
imageformat(img)
H,W,C = img.shape #该方法可以获取图像的尺寸
print(H,W,C)
#让显示等待键盘输入维持在那里,否则程序跑完就闪退啦!
cv.waitKey(0)
#销毁窗口
cv.destroyAllWindows()
输出如下
(2)OPENCV中图片的存储格式是BGR格式,即每个像素对应的数据格式为(blue,green,red)
为了验证该格式,我用做了3副4*4的小图
如果你们懒得做图,要下载的话,我把小图资源放到下面位置
https://download.youkuaiyun.com/download/chencaw/13112102
程序如下
#引入opencv模块
import cv2 as cv
#引入numpy模块
import numpy as np
#读取并输出图像像素值
def showimagepixel(path):
print(path)
#读取图片
img = cv.imread(path)
#判断是否读取成功
if img is None:
print("Could not read the image,may be path error")
return
#显示图像
cv.imshow(path, img)
#获取图像像素
pixel_data=np.array(img)
print(pixel_data)
showimagepixel('E:/chenopencvblogimg/red.bmp')
showimagepixel('E:/chenopencvblogimg/green.bmp')
showimagepixel('E:/chenopencvblogimg/blue.bmp')
#让显示等待键盘输入维持在那里,否则程序跑完就闪退啦!
cv.waitKey(0)
#销毁窗口
cv.destroyAllWindows()
输出如下,可以很明显的看到opencv的BGR格式
2、cv.namedWindow()的用法
基本的使用方法
cv2.namedWindow(‘窗口标题’,默认参数)
(1)窗口大小可以改变:
cv2.namedWindow("image",cv2.WINDOW_NORMAL)
或者cv2.namedWindow('image',cv2.WINDOW_GUI_NORMAL)
(2)窗口大小自动调整为合适大小,然后你就不可以改变窗口了(看上面的英语):
cv2.namedWindow("image",cv2.WINDOW_AUTOSIZE)
(3)窗口大小自适应比例:
cv2.namedWindow("image",cv2.WINDOW_FREERATIO)
(4)窗口大小保持比例:
cv2.namedWindow("image",cv2.WINDOW_KEEPRATIO)
(5)如果你没有执行cv2.namedWindow()操作
cv2.imshow(‘窗口标题’,image),如果前面没有cv2.namedWindow,就自动先执行一个cv2.namedWindow()
#引入opencv模块
import cv2 as cv
#读取图片
img = cv.imread('E:\lena150W200H.jpg')
#判断是否读取成功
if img is None:
print("Could not read the image,may be path error")
#先创建窗口,这时候可以调整大小了
cv.namedWindow("Display window",cv.WINDOW_NORMAL)
#显示图像
cv.imshow("Display window", img)
#让显示等待键盘输入维持在那里,否则程序跑完就闪退啦!
cv.waitKey(0)
#销毁窗口
cv.destroyAllWindows()