首页 > 其他分享 >opencv笔记 - 获取图像属性

opencv笔记 - 获取图像属性

时间:2023-11-27 11:03:04浏览次数:33  
标签:image cv2 笔记 像素 opencv 图像 print img2 img1

学习链接: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笔记 - 获取图像属性_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笔记 - 获取图像属性_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笔记 - 获取图像属性_取值范围_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

标签:image,cv2,笔记,像素,opencv,图像,print,img2,img1
From: https://blog.51cto.com/youyeye/8580739

相关文章

  • C语言笔记7
    数组是一组有序的、类型相同的数据的集合,这些数据被称为数据的元素。一维数组的定义类型说明符数组名【正整型常量表达式】说明:类型说明符:数组的类型。数组名同变量名命名规则相同。常量表达式指明数组中元素个数,必须大于0.可以是数值常量、符号常量和字符常量。例如:floa......
  • 随机过程笔记
    1,相关:两个变量完全没关系,叫独立,如果关系越来越大,相关程度就越来越高,所以相关是研究两个变量之间的互相影响程度,用E(XY)衡量,算出的值大说明相关程度高,值小说明相关程度低。2,相关函数:在随机过程领域,样本随时间变化,我们要研究的就是两个时间点的样本有多相关。比如今天的股票收盘价......
  • 基于FPGA的图像指数对比度增强算法实现,包括tb测试文件和MATLAB辅助验证
    1.算法运行效果图预览      2.算法运行软件版本Vivado2019.2 matlab2022a 3.算法理论概述3.1图像指数对比度增强概述     图像指数对比度增强是一种常见的图像处理方法,主要是通过改变图像的像素值来增强图像的对比度。具体来说,它通常通过将原始图像......
  • 学习笔记11
    TCP/IP和网络编程TCP/IP协议TCP/IP是互联网的基础,TCP代表传输控制协议,IP代表互联网协议。TCP/IP的四层结构:应用层:向用户提供应用程序,如电子邮件、文件传输访问、远程登录等 sshping传输层提供应用程序间的通信,格式化信息流,提供可靠传输: TCPUDP网络层:进行网络连接的建立......
  • 学习笔记11
    第十三章TCP/IP和网络编程一、知识点归纳(一)网络编程简介如今,上网已成为日常生活的需要。虽然大多数人可能只把互联网作为一种信息收集、网上购物和社交媒体等的工具,但计算机科学的学生必须对互联网技术有一定的了解,并掌握一定的网络编程的技能。在本章中,我们将介绍TCP/IP网络......
  • 前端学习笔记202307学习笔记第六十八天-前端面试-flex实现圣杯布局2
       ......
  • 学习笔记11 第十三章学习总结
    第13章TCP/IP和网络编程TCP/IP协议TCP/IP协议是利用IP进行通信时所必须用到的协议群的统称。具体来说,IP或ICMP、TCP或UDP、TELNET或FTP、以及HTTP等都属于TCP/IP协议。他们与TCP或IP的关系紧密,是互联网必不可少的组成部分。TCP/IP一词泛指这些协议,因此,有时也......
  • WGCLOUD 基础详解 常用命令笔记
    WGCLOUD在v3.4.9版本新增了一个模块【常用命令笔记】这个模块非常有用,对我的工作非常有帮助,可以把我常用的一些命令或文档记录下来,也可以当作记事本使用,记录一些笔记使用简单,而且方便......
  • 学习笔记11
    一、任务详情自学教材第13章,提交学习笔记(10分),评分标准如下知识点归纳以及自己最有收获的内容,选择至少2个知识点利用chatgpt等工具进行苏格拉底挑战,并提交过程截图,提示过程参考下面内容(4分)问题与解决思路,遇到问题最先使用chatgpt等AI工具解决,并提供过程截图(3分)实践过程截图,代......
  • 信息安全系统设计与实现学习笔记11
    信息安全系统设计与实现学习笔记11一、知识点归纳以及自己最有收获的内容1.知识点归纳第13章TCP/IP和网络编程TCP/IP协议TCP/IP传输协议,即传输控制/网络协议,是网络使用中最基本的通信协议。它对互联网中各部分进行通信的标准和方法进行了规定。TCP/IP传输协议是保证网络......