按照OPENCV教學文件 純C++ 範例練習紀錄 ~ [opencv_ex02-讀取圖檔時轉灰階、利用遮罩(mask)將圖像的對比度提高,最後將結果存檔]
按照OPENCV教學文件 純C++ 範例練習紀錄 ~ [opencv_ex02-讀取圖檔時轉灰階、利用遮罩(mask)將圖像的對比度提高,最後將結果存檔]
GITHUB:https://github.com/jash-git/CPP_opencv249_ex
#include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <opencv2/ml/ml.hpp> #include <iostream> #include <cstdio> #include <sys/timeb.h> #if defined(WIN32) #define TIMEB _timeb #define ftime _ftime typedef __int64 TIME_T; #else #define TIMEB timeb typedef long long TIME_T; #endif using namespace cv; using namespace std; void Pause() { printf("Press Enter key to continue..."); fgetc(stdin); } int main() { Mat src00, dst00; Mat src01, dst01; src00 = imread("Lena_original.jpg"); src01 = imread("Lena_original.jpg",IMREAD_GRAYSCALE); if (!src00.data) { printf("could not load image...\n"); } else { namedWindow("input image00", CV_WINDOW_AUTOSIZE); imshow("input image00", src00); namedWindow("input image01", CV_WINDOW_AUTOSIZE); imshow("input image01", src01); Mat kernel = (Mat_<char>(3, 3) << 0, -1, 0, -1, 5, -1, 0, -1, 0); filter2D(src00, dst00, src00.depth(), kernel); filter2D(src01, dst01, src01.depth(), kernel); namedWindow("contrast image demo00", CV_WINDOW_AUTOSIZE); imshow("contrast image demo00", dst00); namedWindow("contrast image demo01", CV_WINDOW_AUTOSIZE); imshow("contrast image demo01", dst01); waitKey(0); cv::imwrite("contrast image demo00.png",dst00); cv::imwrite("contrast image demo01.png",dst01); } Pause(); return 0; }