vs2017&opencv4.0
#include <opencv2/opencv.hpp>
#include "opencv2/highgui.hpp"
#include <opencv2\imgproc\types_c.h>
using namespace std;
using namespace cv;
int main(int argc, char** argv) {
Mat src;
src = imread("D:\\test.jpg");
if (src.empty()) {
cout << "could not load image..." << endl;
return -1;
}
namedWindow("input1", WINDOW_AUTOSIZE);
imshow("input1", src);
Mat dst;
dst = Mat(src.size(), src.type());//与src大小类型相同
dst = Scalar(127, 0, 255);//标量,定义颜色
namedWindow("output2", WINDOW_AUTOSIZE);
imshow("output2", dst);
Mat drt;
src.copyTo(drt);//复制src给dst
namedWindow("output3", WINDOW_AUTOSIZE);
imshow("output3", drt);
Mat det;
cvtColor(src, det, CV_BGR2GRAY);//改变颜色
printf("input image channels : %d\n", src.channels());
printf("output image channels : %d\n", det.channels());
int cols = det.cols;//获得dst的行
int rows = det.rows;//获得dst的列
printf("rows : %d cols : %d\n", rows, cols);//输出行数和列数
const uchar* firstRow = det.ptr<uchar>(0);//获得dst的第一个像素
printf("fist pixel value : %d\n", *firstRow);//输处第一个像素
Mat M(100, 100, CV_8UC1, Scalar(127));//定义大小为100 的矩阵,一维数组,像素为127
cout << "M =" << endl << M << endl;
Mat m1;
m1.create(src.size(), src.type());//与src的大小类型相同
m1 = Scalar(0, 0, 255);//三维的数组
Mat csrc;
Mat kernel = (Mat_<char>(3, 3) << 0, -1, 0, -1, 5, -1, 0, -1, 0);//掩膜
filter2D(src, csrc, -1, kernel);
namedWindow("output4", WINDOW_AUTOSIZE);
imshow("output4", csrc);
Mat m2 = Mat::eye(2, 2, CV_8UC1);//创建大小为2*2的一维矩阵
cout << "m2 =" << endl << m2 << endl;//输出矩阵
namedWindow("output5", WINDOW_AUTOSIZE);
imshow("output5", m2);
waitKey(0);
return 0;
}