学习链接:https://www.bilibili.com/video/BV1De411R77P/?p=6&vd_source=441ed12ec48d03afe294e7c5f663a0d3
获取图像属性
主要介绍三个属性:
- 形状属性:行、列、通道数
- 像素数目属性
- 图像的数据类型属性
形状属性
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个通道
'''
像素数目属性
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个像素点(彩色图像)
'''
图像数据类型属性
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这个类型)
完整代码
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,使用二进制来表示。
'''
标签:image,cv2,笔记,像素,opencv,图像,print,img2,img1
From: https://blog.51cto.com/youyeye/8580739