CV_8UC1,CV_32FC3,CV_32S等参数的含义

本文详细解释了OpenCV中的图像类型标识符,包括不同位深度(如8位、16位、32位)、有符号/无符号整型和浮点型的区别,以及imshow函数如何根据不同数据类型调整显示。特别指出8位灰度和BGR图像与32F/64F浮点图像的映射规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

形式:CV_(S|U|F)C

bit_depth:比特数---代表8bite,16bites,32bites,64bites... 举个例子吧--比如说: 如果你现在创建了一个存储--灰度图片的Mat对象,这个图像的大小为宽100,高100,那么,现在这张灰度图片中有10000个像素点,它每一个像素点在内存空间所占的空间大小是8bite,8位--所以它对应的就是CV_8。

S|U|F: S--代表---signed int---有符号整形 U--代表--unsigned int--无符号整形 F--代表--float---------单精度浮点型

C----代表---一张图片的通道数,比如:

channels = 1:灰度图片--grayImg---是--单通道图像

channels = 3:RGB彩色图像---------是--3通道图像

channels = 4:带Alph通道的RGB图像--是--4通道图像

不带通道数的这些类型就是默认通道数为1。

例如,CV_8U就等同于CV_8UC1,CV_32S就等同于CV_32SC1。

imshow函数在显示图像时,会将各种类型的数据都映射到[0, 255]。

如下:

· 如果载入的图像是8位无符号类型(8-bit unsigned),就显示图像本来的样子。

· 如果图像是16位无符号类型(16-bit unsigned)或32位整型(32-bit integer,有符号位),便用像素值除以256。也就是说,值的范围是 [0,255 x 256]映射到[0,255]。

· 如果图像是32位或64位浮点型(32-bit floating-point or 64-bit floating-point),像素值便要乘以255。也就是说,该值的范围是 [0,1]映射到[0,255]。

如:CV_8U的灰度或BGR图像的颜色分量都在0~255之间。直接imshow可以显示图像。 CV_32F或者CV_64F取值范围为0~1.0,imshow的时候会把图像乘以255后再显示。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值