(3)Mat数据结构初步

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cup160828/article/details/80988440
#include <opencv2\opencv.hpp>
#include <iostream>


using namespace std;
using namespace cv;


int main(int argc, char** argv)
{
//创建一个240 X 320的新图像
Mat image1(240, 320, CV_8UC3, 200); //‘C+数字’表示通道数
imshow("Image", image1); //显示图像
waitKey(0);


//重新分配一个新图像
image1.create(200, 200, CV_8U);
image1 = 200;
imshow("image", image1);
waitKey(0);


//创建一个红色的图像
//通道次序为BGR
Mat image2(240, 320, CV_8UC3, Scalar(0, 0, 255));
//或者
//Mat image2(Size(320,240),CV_8UC3);
//image2=Scalar(0,0,255);
imshow("image2", image2);
waitKey(0);


//读入一幅图像
Mat image3 = imread("C:\\Users\\Administrator\\Desktop\\1.jpg", IMREAD_COLOR);


//所有这些图像都指向同一个数据块
//注意C++对象的赋值规则
Mat image4(image3);
image1 = image3;


//这些图像是源图像的副本图像
image3.copyTo(image2);
Mat image5 = image3.clone();


//转换图像进行测试
flip(image3, image3, 1);
//检查哪些图像在处理过程中受到了影响
imshow("Image3", image3);
imshow("Image1", image1);
imshow("Image2", image2);
imshow("Image4", image4);
imshow("Image5", image5);
//注意到2、5一样,1、3、4一样,所涉及到的C++语法留待复习
waitKey(0);


//作为灰度图像读入
image1 = imread("C:\\Users\\Administrator\\Desktop\\1.jpg", CV_LOAD_IMAGE_GRAYSCALE);
image1.convertTo(image2, CV_32F, 1 / 255.0, 0);


imshow("Image", image2);
waitKey(0);
return 0;
}

猜你喜欢

转载自blog.csdn.net/cup160828/article/details/80988440