首先用opencv 來顯示一副圖檔。這很簡單,代碼如下:
opencv 顯示一副圖檔
#include <opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char** argv){
IplImage* img = cvLoadImage("image2.jpg");
cvNamedWindow("Example1", CV_WINDOW_AUTOSIZE);
cvShowImage("Example1", img);
cvWaitKey(0);
cvReleaseImage(&img);
cvDestroyWindow("Example1");
}
顯示結果:

完整opencv實作
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
IplImage* in = NULL;
IplImage* out = NULL;
IplImage* g_GrayImage = NULL;
const char *InputTitle = "Input Image";
const char *OutputTitle = "Output Image";
void on_trackbar(int pos)
{
// 轉為二值圖
cvThreshold(g_GrayImage, out, pos, 255, CV_THRESH_BINARY);
// 顯示二值圖
cvShowImage(OutputTitle, out);
}
int main(int argc, char** argv){
cvNamedWindow(InputTitle, CV_WINDOW_AUTOSIZE);
cvNamedWindow(OutputTitle, CV_WINDOW_AUTOSIZE);
in = cvLoadImage("image2.jpg");
// 轉為灰階圖
g_GrayImage = cvCreateImage(cvGetSize(in), IPL_DEPTH_8U, 1);
cvCvtColor(in, g_GrayImage, CV_BGR2GRAY);
// 建立二值圖
out = cvCreateImage(cvGetSize(g_GrayImage), IPL_DEPTH_8U, 1);
// 滑動條
int nThreshold = 0;
cvCreateTrackbar("二值圖門檻值", OutputTitle, &nThreshold, 255, on_trackbar);
cvShowImage(InputTitle, in);
cvShowImage(OutputTitle, out);
cvWaitKey(0);
cvReleaseImage(&in);
cvReleaseImage(&out);
cvDestroyWindow(InputTitle);
cvDestroyWindow(OutputTitle);
return 0;
}