加载美女图片之OpenCV 图像读取与显示

简介: 加载美女图片之OpenCV 图像读取与显示

文章目录

一、图像通道

二、读取图像

1、Mat结构

2、格式化打印图像数据

3、访问或设置像素强度值

4、imread函数读取图片

三、显示图像

四、保存图像

五、综合案例讲解

1、测试上面的函数

2、格式化打印效果

3、保存图片效果展示

4、综合代码

一、图像通道

颜色通道

RGB 图像有4 个默认通道:红色、绿色和蓝色各有一个通道,以及一个用于编辑图像复合通道(主通道)

彩色深度

8位色,每个像素所能显示的彩色数为2的8次方,即256种颜色。


16位增强色,16位彩色,每个像素所能显示的彩色数为2的16次方,即65536种颜色。


24位真彩色,每个像素所能显示的彩色数为24位,即2的24次方,约1680万种颜色。


32位真彩色,即在24位真彩色图像的基础上再增加一个表示图像透明度信息的Alpha通道。


Alpha通道:一张图片的透明和半透明度

CV_8UC3系列解读


函数原型

CV_<bit_depth>(S|U|F)C<number_of_channels>

bit_depth:像素点占用空间大小,bit


S|U|F:


S:signed int——有符号

U:unsigned int——无符号

F:float——单精度浮点

number_of_channels


1 单通道图像,即为灰度图像

2 双通道图像

3 三通道图像

4 带Alpha通道的彩色图像,四通道图像


1、Mat结构

大家可以用如下图的方式查看,需要用到哪个调用哪个,这里只是简单的介绍


我们可以看一下库函数447fd1671ca54d3892e3f0195dfc7b50.png

class  Mat

{

public:

 /*

  flag:  

  1.数字签名  

  2.维度

  3.通道数

  4.连续性

 */

int flags;      

int dims;      //数据维数

int rows,cols;     //数据行列

uchar *data;    //存储的数据  

   const uchar* datastart;  //数据开始

   const uchar* dataend;  //数据结束

   const uchar* datalimit;  //数据边界

//其他成员  

 //.....

 //其他方法

 //.....

public:   //构造方式

   // 默认构造函数 Mat A;

   Mat ()

   // 常用构造函数 Mat A(10,10,CV_8UC3);

   Mat (int rows, int cols, int type)

   //Mat A(300, 400, CV_8UC3,Scalar(255,255,255));

   Mat (int ndims, const int *sizes, int type, const Scalar &s)

   Mat (Size size, int type)

   Mat (int rows, int cols, int type, const Scalar &s)

   Mat (Size size, int type, const Scalar &s)

   Mat (int ndims, const int *sizes, int type)

   Mat (const Mat &m)

   Mat (int rows, int cols, int type, void *data, size_t step=AUTO_STEP)

   Mat (Size size, int type, void *data, size_t step=AUTO_STEP)

   Mat (int ndims, const int *sizes, int type, void *data, const size_t *steps=0)

   Mat (const Mat &m, const Range &rowRange, const Range &colRange=Range::all())

   //Mat D (A, Rect(10, 10, 100, 100) );

   Mat (const Mat &m, const Rect &roi)

   Mat (const Mat &m, const Range *ranges)

};

2、格式化打印图像数据

函数原型


Ptr<Formatted> format(InputArray mtx, Formatter::FormatType fmt)


第一个参数是图像名称

第二个参数是打印方式

FMT_DEFAULT= 0,

FMT_MATLAB= 1,

FMT_CSV = 2,

FMT_PYTHON = 3,

FMT_NUMPY = 4,这也是py的一种打印方式,数组

FMT_C = 5,C语言方式打印


3、访问或设置像素强度值

函数原型


Scalar 它将各个通道的值构成一个整体,赋给具有相同通道数的矩阵元素,通俗点就是一个复合数据


版权声明:本文为CSDN博主「热爱编程的小K」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/qq_72157449/article/details/130097048

相关文章
|
15天前
|
算法 计算机视觉
【Qt&OpenCV 图像的感兴趣区域ROI】
【Qt&OpenCV 图像的感兴趣区域ROI】
18 1
|
15天前
|
运维 算法 计算机视觉
【Qt&OpenCV 图像的模板匹配 matchTemplate/minMaxLoc】
【Qt&OpenCV 图像的模板匹配 matchTemplate/minMaxLoc】
16 1
|
15天前
|
存储 编解码 算法
【Qt&OpenCV 检测图像中的线/圆/轮廓 HoughLinesP/HoughCircles/findContours&drawContours】
【Qt&OpenCV 检测图像中的线/圆/轮廓 HoughLinesP/HoughCircles/findContours&drawContours】
26 0
|
15天前
|
算法 计算机视觉
【Qt&OpenCV 图像边缘检测 Sobel/Laplace/Canny】
【Qt&OpenCV 图像边缘检测 Sobel/Laplace/Canny】
12 0
|
15天前
|
算法 计算机视觉
【Qt&OpenCV 图像的形态学变换 morpholgyEx】
【Qt&OpenCV 图像的形态学变换 morpholgyEx】
7 0
|
15天前
|
算法 计算机视觉
【Qt&OpenCV 图像阈值操作 threshold】
【Qt&OpenCV 图像阈值操作 threshold】
13 0
|
15天前
|
资源调度 算法 计算机视觉
【Qt&OpenCV 图像平滑/滤波处理 -- Blur/Gaussian/Median/Bilateral】
【Qt&OpenCV 图像平滑/滤波处理 -- Blur/Gaussian/Median/Bilateral】
17 0
|
15天前
|
算法 计算机视觉
【Qt&OpenCV 图像缩放resize()】
【Qt&OpenCV 图像缩放resize()】
11 0
|
15天前
|
算法 计算机视觉
【Qt&OpenCV QGraphicsView显示OpenCV读入的图片】
【Qt&OpenCV QGraphicsView显示OpenCV读入的图片】
17 0
|
21天前
|
算法 计算机视觉 Python
openCV 3计算机视觉 Python语言实现 笔记 第三章 使用OpenCV 3处理图像
openCV 3计算机视觉 Python语言实现 笔记 第三章 使用OpenCV 3处理图像