#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main(int argc, char** argv)
{ //读图
Mat scr = imread("C:/Users/dell/Desktop/图片变化/1024_699_3.jpg"); //此为你电脑上图片的路径
//窗口命名
namedWindow("林允儿", 0);
//显示
imshow("林允儿", scr);
//创建一个新矩阵
Mat dst;
//将scr变成灰色给dst
cvtColor(scr, dst, COLOR_BGR2GRAY); //图像灰度化
namedWindow("灰度图", 1);
//灰度图显示
imshow("灰度图", dst);
//通道数显示
cout <<"原图的通道数 :" <<scr.channels() << endl;
cout << "灰度图的通道数: "<<dst.channels()<<endl;
//维数显示
cout << "原图的维数 :" << scr.dims<< endl;
cout << "灰度图的维数: " << dst.dims<< endl;
//图的行列大小
cout << "原图的行列分别为 :" << scr.rows << " " << scr.cols << endl;
cout << "灰度图的行列分别为: " << dst.rows << " " << dst.cols << endl;
//矩阵元素大小
cout << "原图的一个元素的大小 :" << scr.elemSize()<< endl;
cout << "灰度图的一个元素的大小: " << dst.elemSize()<< endl;
//如果Mat中的数据类型是CV_8UC1,那么elemSize==1;如果是CV_8UC3或CV_8SC3,那么elemSize==3;如果是CV_16UC3或者CV_16SC3,那么elemSize==6;即elemSize是以8位(一个字节)为一个单位,乘以通道数和8位的整数倍;
//索引矩阵中的一个元素
int a = dst.at<uchar>(255, 255);
cout << a << endl;
waitKey(0);
destroyAllWindows();
return 0;
}
c++:opencv读图后mat矩阵的基本操作
最新推荐文章于 2023-02-27 14:41:07 发布