当前位置: 首页 > news >正文

东莞浩智建设网站公司/微信公众号推广网站

东莞浩智建设网站公司,微信公众号推广网站,德州网站建设公司,照片视频合成制作软件《数字图像处理-OpenCV/Python》连载(10)图像属性与数据类型 本书京东优惠购书链接:https://item.jd.com/14098452.html 本书CSDN独家连载专栏:https://blog.csdn.net/youcans/category_12418787.html 第2章 图像的数据格式 在P…

《数字图像处理-OpenCV/Python》连载(10)图像属性与数据类型


本书京东优惠购书链接:https://item.jd.com/14098452.html
本书CSDN独家连载专栏:https://blog.csdn.net/youcans/category_12418787.html

在这里插入图片描述


第2章 图像的数据格式

在Python语言中,OpenCV以Numpy数组存储图像,对图像的访问和处理都是通过Numpy数组的操作来实现的。


本章内容概要

  • 介绍Python语言中OpenCV的数据结构,学习获取图像的基本属性。
  • 学习使用Numpy数组实现图像的创建、复制、裁剪、拼接、拆分与合并的方法。
  • 学习使用查找表(LUT)快速实现像素值的替换。

2.1 图像属性与数据类型


2.1.1 图像颜色分类

按照图像颜色分类,图像可以分为二值图像、灰度图像和彩色图像。

  • 二值图像:只有黑色和白色两种颜色的图像。每个像素点的像素值可以用0/1或0/255表示,0表示黑色,1或255表示白色。
  • 灰度图像:只有灰度的图像。每个像素点的像素值可以用8bit数字[0, 255]表示灰度级,如0表示纯黑,255表示纯白。
  • 彩色图像:彩色图像可以采用蓝色(B)、绿色(G)和红色(R)三个颜色通道的组合来表示。每个像素点可以用3个 8bit 数字[0, 255]分别表示红色、绿色和蓝色的颜色分量,如(0,0,0) 表示黑色,(0,0,255) 表示红色,(255,255,255) 表示白色。

OpenCV使用BGR格式读取图像解码后,按B/G/R顺序存储为多维Numpy数组,而PIL、PyQt、Matplotlib等库使用的是RGB格式。

在数字图像处理中,可以根据需要对图像的颜色通道顺序进行转换,或将彩色图像转换为灰度图像和二值图像。


2.1.2 以Numpy数组表示数字图像

数字图像由像素点组成的矩阵来描述,以多维Numpy数组来表示和处理。

OpenCV在C++语言中定义的Mat类,是最基本的图像存储格式。在Python语言的API中则基于Numpy库来存储和处理多维数组,即以多维Numpy数组来存储和处理图像。在Python语言中,OpenCV对图像的任何操作,本质上都是对多维Numpy数组的操作和运算。

OpenCV中的二值图像和灰度图像用二维数组表示,数组的形状是(h,w),行与列分别表示图像的高度与宽度。数组中每个元素的值表示对应行/列像素点的灰度值。二值图像是特殊的灰度图像,像素值取0/1或0/255。

OpenCV中的彩色图像用三维数组(h,w,ch) 表示,ch=3表示通道数,数据组织形式如图2-1所示。数组中的每个元素对应像素点的某种颜色分量值。

OpenCV颜色通道的顺序为B/G/R,因此img[:,:,0]表示彩色图像img的B通道,img[:,:,1]表示G通道,img[:,:,2]表示R通道。

在OpenCV中,图像的数据结构是Numpy数组,因此Numpy数组的所有属性和操作方法都适用于OpenCV的图像对象。例如:

  • img.ndim:查看图像的维数,彩色图像的维数为3,灰度图像的维数为2。
  • img.shape:查看图像的形状(h,w,ch),即图像的行数(高度)、列数(宽度)和通道数。
  • img.size:查看图像数组元素的总数,即图像像素的数量与通道数的乘积。

2.1.3 图像的数据类型

OpenCV函数对于数据类型有严格要求,错误的数据类型会导致语法错误。

OpenCV中图像数据类型的参数命名格式如下。

CV_{数字位数}{数字类型}C{通道数}

例如,CV_8UC3表示三通道8位无符号整型数据格式的矩阵。

OpenCV数据类型与Numpy数据类型的对照关系如表2-1所示。在图像处理中,最常用的数据类型是8位无符号整型数据CV_8U,对应的Numpy数据类型是uint8。

推荐在调用Numpy库函数时使用Numpy数据类型的名称,而在调用OpenCV函数时使用OpenCV数据类型的名称,以免发生错误。

使用img.dtype可以获得Numpy数组的数据类型,使用img.astype可以把图像的数据类型转换成指定的Numpy数据类型。


【例程0201】图像属性与数据类型转换

本例程使用Numpy数组的操作方法,获取图像属性和数据格式。


# 【0201】图像属性与数据类型转换
import cv2 as cv
import numpy as npif __name__ == '__main__':# 读取图像,支持 BMP、JPG、PNG、TIFF 等常用格式filepath = "../images/imgLena.tif"  # 读取文件的路径img = cv.imread(filepath, flags=1)  # flags=1 读取彩色图像(BGR)gray = cv.imread(filepath, flags=0)  # flags=0 读取为灰度图像# 维数(Ndim)、形状(Shape)、元素总数(Size)、数据类型(Dtype)print("Ndim of img(BGR): {}, gray: {}".format(img.ndim, gray.ndim))print("Shape of img(BGR): {}, gray: {}".format(img.shape, gray.shape))  # number of rows, columns and channelsprint("Size of img(BGR): {}, gray: {}".format(img.size, gray.size))  # size = rows × columns × channelsimgFloat = img.astype(np.float32) / 255print("Dtype of img(BGR): {}, gray: {}".format(img.dtype, gray.dtype))  # uint8
print("Dtype of imgFloat: {}".format(imgFloat.dtype))  # float32

运行结果:

Ndim of img(BGR): 3, gray: 2
Shape of img(BGR): (512, 512, 3), gray: (512, 512)
Size of img(BGR): 786432, gray: 262144
Dtype of img(BGR): uint8, gray: uint8
Dtype of imgFloat: float32

程序说明:
(1) 彩色图像是三维Numpy数组,灰度图像是二维Numpy数组。因此,相同尺寸的彩色图像与灰度图像的像素数量相同,但数组元素的数量不同。
(2) 彩色图像的形状为(h, w, 3),灰度图像的形状为(h, w)。在查看图像高度和宽度时,推荐使用h, w=img.shape[:2],不推荐使用h, w=img.shape。


本书京东优惠购书链接:https://item.jd.com/14098452.html


版权声明:
youcans@xupt 原创作品,转载必须标注原文链接:(https://blog.csdn.net/youcans/article/details/133561857)
Copyright 2023 youcans, XUPT
Crated:2023-10-05

欢迎关注本书CSDN独家连载专栏
《数字图像处理-OpenCV/Python》连载: https://blog.csdn.net/youcans/category_12418787.html

http://www.jmfq.cn/news/5327515.html

相关文章:

  • 拓尔思网站建设公司/网页制作代码大全
  • 涪陵网站建设/常见的网络推广方法
  • 网站建设常用六大布局/营销类网站
  • 中小型网站建设怎么样/橙子建站官网
  • 网站建设找什么工作室/谷歌广告投放教程
  • 互联网网站建设挣钱吗/友情链接地址
  • 十堰学网站建设培训班/刷赞业务推广网站
  • 福建 建设网站/青岛网站建设方案优化
  • 辽宁建设厅网站首页/2021小说排行榜百度风云榜
  • 隆化县建设局网站/整合营销方案怎么写
  • 长沙做网站建设公司哪家好/专业软文发布平台
  • 大大福利站网站建设/合肥seo按天收费
  • 网站建设的运用场景/网站设计制作的服务怎么样
  • 青岛市城乡建设局网站/企业查询网
  • 宁德市住房和城乡建设局新网站/seo排名工具
  • 环保行业网站建设/危机公关
  • 广州微网站建设/搜狗搜索引擎推广
  • 龙岩市住房和城乡建设厅网站首页/关键词营销优化
  • 桂林住房城乡建设委员会网站/seo常用的工具
  • 建设网站的产品规划/免费宣传平台
  • 青秀区网站建设/宁德seo公司
  • 农业公司网站建设/上海关键词排名手机优化软件
  • 网站建设中怎么添加源码/宁波正规seo推广
  • 网络网站建设10大指标/打开百度网站首页
  • 普洱市住房城乡建设局网站/郑州网络推广服务
  • 长城集团建设有限公司网站/123网址之家
  • 济南网站建设公司有哪些/中国突然宣布一重磅消息
  • 对网站建设的评价/站长工具使用方法
  • 个人网站建设与维护/中国进入一级战备2023
  • 七里河微信网站建设/关键词优化简易