opencv笔记 - 获取图像属性
  xWYnr39PTA9E 2023年11月28日 14 0

学习链接:https://www.bilibili.com/video/BV1De411R77P/?p=6&vd_source=441ed12ec48d03afe294e7c5f663a0d3

获取图像属性

主要介绍三个属性:

  1. 形状属性:行、列、通道数
  2. 像素数目属性
  3. 图像的数据类型属性

形状属性

shape

shape可以获取图像的形状,返回包含行数,列数,通道数的元组.

  • 灰度图像:返回行数,列数
  • 彩色图像:返回行数,列数,通道数(BGR)

例子

import cv2
img1 = cv2.imread('opencv/image/image_demo.jpg',0)
print(img1.shape)

img2 = cv2.imread('opencv/image/image_demo.jpg',1)
print(img2.shape)
'''
运行后输出:
(720, 1600)
(720, 1600, 3)
'''
'''
(720, 1600)是有720行、1600列
(720, 1600, 3)是有720行、1600列、3个通道
'''

opencv笔记 - 获取图像属性_图形属性


像素数目属性

size

size可以获取图像的像素数目。(像素数目指的是这个图像有多少个像素点)

  • 灰度图像:返回:行数 * 列数
  • 彩色图像:返回:行数 * 列数 * 通道数

例子

import cv2
img1 = cv2.imread('opencv/image/image_demo.jpg',0)
print(img1.size)

img2 = cv2.imread('opencv/image/image_demo.jpg',1)
print(img2.size)
'''
运行后输出:
1152000
3456000
'''
'''
1152000说明img1图像有1152000个像素点(灰度图像)
3456000说明img2图像有3456000个像素点(彩色图像)
'''

opencv笔记 - 获取图像属性_取值范围_02


图像数据类型属性

dtype

dtype返回的是图像里面每个像素点的数据类型。

例子

import cv2
img1 = cv2.imread('opencv/image/image_demo.jpg',0)
print(img1.dtype)

img2 = cv2.imread('opencv/image/image_demo.jpg',1)
print(img2.dtype)
'''
运行后输出:
uint8
uint8
'''
# 可以看到运行后输出的都是uint8类型(表示每一个像素点都是uint8这个类型)

opencv笔记 - 获取图像属性_opencv_03


完整代码

import cv2
img1 = cv2.imread('opencv/image/image_demo.jpg',0)
# print(img1.shape)
# print(img1.size)
# print(img1.dtype)

img2 = cv2.imread('opencv/image/image_demo.jpg',1)
# print(img2.shape)
# print(img2.size)
# print(img2.dtype)

总结

形状属性:img.shape

像素数目:img.size

数据类型:img.dtype


SOP一下(uin8是什么)

# 使用cv2的dtype获取图像的数据类型返回uint8,这是个什么类型,这个代表了什么?dtype还能返回那些属性?全部给我列举出来
'''
uint8是一种无符号整数类型,表示每个像素的取值范围为0到255。在计算机中,它使用8位二进制数来表示一个整数值。

除了uint8之外,OpenCV中的dtype属性还可以返回以下几种属性:
    float32:单精度浮点数类型,每个像素的取值范围为0.0到1.0。
    float64:双精度浮点数类型,每个像素的取值范围为0.0到1.0。
    int8:有符号整数类型,每个像素的取值范围为-128到127。
    int16:有符号整数类型,每个像素的取值范围为-32768到32767。
    int32:有符号整数类型,每个像素的取值范围为-2147483648到2147483647。
    int64:有符号整数类型,每个像素的取值范围为-9223372036854775808到9223372036854775807。
这些不同的数据类型可以根据具体的需求选择使用,例如对于需要精确计算的场景可以使用float32或float64类型,而对于只需要表示黑白图像的场景可以使用uint8类型。
'''
'''
总结uint8:
	无符号整数类型,每个像素的取值范围为0到255,使用二进制来表示。
'''

opencv笔记 - 获取图像属性_图形属性_04

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月28日 0

暂无评论

推荐阅读
  UYSNSBVoGd8R   2023年12月06日   19   0   0 关闭窗口OpenCV读取图像
xWYnr39PTA9E
最新推荐 更多