图像处理框架:仅使用OpenCV进行图像的显示、读取、保存;中间图像处理的过程脱离OpenCV,以彩色图像转灰度图像为例进行代码使用的展示。
#include <iostream>
#include <opencv2\opencv.hpp>
using namespace cv;
using namespace std;
#define EPSILON 1e-15
#define DEMO_SAVE_FILES 0
#define DEMO_IMAGE_PATH "test_image_01.jpg"
#ifndef MAX
#define MAX(x, y) ((x) > (y) ? (x) : (y))
#endif // !MAX
#ifndef MIN
#define MIN(x, y) ((x) < (y) ? (x) : (y))
#endif // !MIN
#ifndef CLAMP
#define CLAMP(x, y, z) MIN(MAX((x), (y)), (z))
#endif // !CLAMP
void safe_release(void** ptr)
{
if (*ptr != NULL)
{
free(*ptr);
*ptr = NULL;
}
}
int main()
{
cout << "OpenCV Version: " << CV_VERSION << endl;
clock_t start = clock();
clock_t end = clock();
#ifdef DEMO_IMAGE_PATH
Mat img_bgr = imread(DEMO_IMAGE_PATH, CV_LOAD_IMAGE_COLOR);
if (img_bgr.empty())
{
cout << "Input image is null!" << endl;
return 0;
}
imshow("img_bgr", img_bgr);
cout << "Channel nmuber: " <&