OpenCV3读取、写入和保存图像
需要说明的是在OpenCV3中已经将imread()和imwrite()函数转移到imgcodecs模块中,因此读写图像时,需要包含imgcodecs.hpp头文件,但是highgui.hpp头文件中已经包含了该头文件,因此不用再显式包含了。
#include <iostream> #include <string> using namespace std; // OpenCV includes #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> using namespace cv; int main(int argc, const char** argv) { // Read images Mat color = imread("../images/eating.jpg"); Mat gray = imread("../images/eating.jpg", 0); // Write images imwrite("gray.jpg", gray); // Get same pixel with opencv function int myRow = color.cols - 1; int myCol = color.rows - 1; Vec3b pixel = color.at<Vec3b>(myRow, myCol); cout << "Pixel Value (B, G, R): (" << (int)pixel[0] << ", " << (int)pixel[1] << ", " << (int)pixel[2] << ")" << endl; // Show images imshow("Color Image", color); imshow("Gray Image", gray); // Wait for any key waitKey(0); return 0; }
显示的图片效果如下: