内容涉及到图像读取的at()操作,图像的拆分和合并的参数解释和代码,以及一些常用的图像属性的内置函数。
目录
一、图像的读写操作at()函数
二、图像通道的拆分与合并
1.通道拆分
2.通道合并
三、图像的属性
1.列举解释
2.表格汇总
总结
提示:以下是本篇文章正文内容,下面案例可供参考
apI:at()
单通道图像:img.at
(i,j) 表示在第i行,第j列的像素值
多通道图像:img.at
(i,j)[c] 表示在某个通道中第i行,第j列的像素值
apl:split()
官方定义:
void split(InputArray m, OutputArrayOfArrays mv);
参数解释:
(1) m : 输入的多通道图像,对该图像进行通道的拆分。
(2) mv : 存放图像拆分后的三个通道的灰度图像的容器。mv为图像数组,使用vector容器。
代码演示:
#include //imread
#include //imshow waitKey
using namespace std;
using namespace cv;
int main()
{
vector channels;//声明vector,作为分离后三个通道的图像的保存容器
Mat img = imread("C:/r/bear.jpg");//读取图片
split(img,channels);//使用split()函数,分离img的B.G.R三个通道
Mat B = channels.at(0);//下标读取 默认顺序B-G-R
Mat G = channels.at(1);
Mat R = channels.at(2);
imshow("原图", img);//显示原图
imshow("blue", B); //显示三通道图像
imshow("green", G);
imshow("red", R);
waitKey(0);
return 0;
}
分离后的三个通道的图像为灰度图像,表示强度
apl:merge()
官方定义:
void merge(InputArrayOfArrays mv, OutputArray dst);
参数解释:
(1)mv : 同通道的拆分。为拆分后的多通道的图像数组。
(2)dst : 存放合并后的图像。
代码演示:
#include //imread
#include //imshow waitKey
using namespace std;
using namespace cv;
int main()
{
vector channels;//声明vector,作为分离后三个通道的图像的保存容器
Mat img = imread("C:/r/bear.jpg");//读取图片
split(img,channels);//使用split()函数,分离img的B.G.R三个通道
Mat dst;
merge( channels,dst);//合并三通道
imshow("outPutArray", dst);//展示合并后的熊大
waitKey(0);
return 0;
}
下面进行列举
src.size() 返回图像尺寸
size中的参数先宽度(width)后高度(height)
src.size().width == src.cols (宽度==列)
src.size().heght == src.rows (高度==行)
src.depth() 返回深度
度量每一个像素每一个通道的精度,位数(bit)(0~6)
数值越大,精度越高
一个元素单通道的字节数 * 通道数
src.elemSize1()==src.elemSize() / src.channels()
src.step==宽度*通道数
src.step1() == e1()src.step / src.elemSize1()
src.isContinuous()?"true":"false"
apl | 返回值 |
src.size() | 图像尺寸 |
src.depth() | 图像深度id |
src.channels() | 预想通道数 |
src.elemSize() | 一个元素所占字节数 |
src.elemSize1() | 一个元素单通道的所占字节数 |
src.total() | 像素总数 |
src.step | 每一行的步长(字节数) |
src.step1() | |
src.step [0] | 一行元素的字节数 |
src.step [1] | 一个元素的字节数 |
src.step1 (0) | 一行元素的通道数 |
src.step1 (1) | 一个元素的通道数 |
src.isContinuous() | 判断src是否在内存上连续 |
src.isSubmatrix() | 判断src是否为子矩阵 |
src.type() | 元素类型以及矩阵的通道个数 |
以上就是今天的笔记,内容涉及到图像读取的at()操作,图像的拆分和合并的参数解释和代码,以及一些常用的图像属性的内置函数。