opencv中图像的格式和imshow如何看很大很多小的图和自动适应namedWindow()__教程3

本文介绍了OpenCV中图像的格式,包括图像的尺寸、数据类型和BGR存储格式,并通过实例展示了如何读取和验证图像的BGR顺序。同时,详细阐述了`cv2.namedWindow()`函数的不同参数用法,如窗口大小的调整和窗口管理模式。
摘要由CSDN通过智能技术生成

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.csdn.net/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()

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值