OpenCV编程->二值化

来源:互联网 发布:高性能mysql在线阅读 编辑:程序博客网 时间:2024/06/04 19:43


#include "opencv2/imgproc/imgproc.hpp"#include "opencv2/objdetect/objdetect.hpp"#include "opencv2/highgui/highgui.hpp"#include "opencv2/ml/ml.hpp"#include "opencv2/opencv.hpp"#include <stdio.h>#include <string.h>#include <ctype.h>#include <iostream>#include <fstream>using namespace cv;using namespace std;IplImage *g_pGrayImage = NULL;  IplImage *g_pBinaryImage = NULL;  const char *pstrWindowsBinaryTitle = "二值图(http://blog.csdn.net/MoreWindows)";  void on_trackbar(int pos)  {  // 转为二值图  cvThreshold(g_pGrayImage, g_pBinaryImage, pos, 255, CV_THRESH_BINARY);  // 显示二值图  cvShowImage(pstrWindowsBinaryTitle, g_pBinaryImage);  }  int main( int argc, char** argv )  {     const char *pstrWindowsSrcTitle = "原图(http://blog.csdn.net/MoreWindows)";  const char *pstrWindowsToolBarName = "二值图阈值";  // 从文件中加载原图  IplImage *pSrcImage = cvLoadImage("103.jpg", CV_LOAD_IMAGE_UNCHANGED);  // 转为灰度图  g_pGrayImage =  cvCreateImage(cvGetSize(pSrcImage), IPL_DEPTH_8U, 1);  cvCvtColor(pSrcImage, g_pGrayImage, CV_BGR2GRAY);  // 创建二值图  g_pBinaryImage = cvCreateImage(cvGetSize(g_pGrayImage), IPL_DEPTH_8U, 1);  // 显示原图  cvNamedWindow(pstrWindowsSrcTitle, CV_WINDOW_AUTOSIZE);  cvShowImage(pstrWindowsSrcTitle, pSrcImage);  // 创建二值图窗口  cvNamedWindow(pstrWindowsBinaryTitle, CV_WINDOW_AUTOSIZE);  // 滑动条    int nThreshold = 0;  cvCreateTrackbar(pstrWindowsToolBarName, pstrWindowsBinaryTitle, &nThreshold, 254, on_trackbar);  on_trackbar(1);  cvWaitKey(0);  cvDestroyWindow(pstrWindowsSrcTitle);  cvDestroyWindow(pstrWindowsBinaryTitle);  cvReleaseImage(&pSrcImage);  cvReleaseImage(&g_pGrayImage);  cvReleaseImage(&g_pBinaryImage);  return 0;  }  


0 0
原创粉丝点击