1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
#include <iostream> #include <opencv2/opencv.hpp> using namespace cv; int main() { //载入、显示、保存图像 Mat image; image = imread("/home/lei/test.jpg"); if(image.data) { std::cout << "height: " << image.size().height << " width: " <<image.size().width << std::endl; //显示图像宽高 } namedWindow("preview", WINDOW_AUTOSIZE); imshow("preview", image); //图像翻转 Mat result; flip(image, result, 1); //1表示水平翻转,0表示垂直翻转,负数既有水平也有垂直 namedWindow("result", WINDOW_AUTOSIZE); imshow("result", result); //保存图像 imwrite("output.png", result); //CV_8U单字节像素图像、CV_8UC3彩色图像、CV_16SC3、CV_32F Mat image2(240, 320, CV_8U, Scalar(255)); namedWindow("255", WINDOW_AUTOSIZE); imshow("255", image2); //Mat出作用域内存会自动释放,并且使用了引用计数的浅拷贝,如果要深拷贝使用copyTo Mat image3, image4; image3 = image; //浅拷贝 image.copyTo(image4); //深拷贝 waitKey(0); } |