OpenCV图像自适应阈值二值化及图像平滑处理

2025-05-26 00:11:50

1、首先安装好Opencv库,OpenCV 下载链接https://opencv.org/。vs下新建工程,win32控制台程序,在工程中把OpenCV环境配置好,即将头文件目录和动态库目录包含上,以及包含相应的库文件。

OpenCV图像自适应阈值二值化及图像平滑处理
OpenCV图像自适应阈值二值化及图像平滑处理

2、工程里包含相应的头文件、命名空间等。//OpenCV图形处理头文件#include <opencv2\highgui\highgui.hpp>#include <opencv2\imgproc\types_c.h>#include <opencv2/core/core_c.h>#include <opencv2/imgproc/imgproc.hpp>#include <opencv\cxcore.h>#include <opencv\cv.h>#include <opencv2/core/types.hpp>#include <opencv2/core/types_c.h>using namespace std;using namespace cv;

3、将以下代码复制到工程里,即可。//:::::::::::::::::::::;兔脒巛钒图像的二值化::::::::::::::::::::::::::::// //缩放图像 double fScal髫潋啜缅e = 1; //缩放倍数0.214 CvSize czSize; //目标图像尺寸CV_LOAD_IMAGE_UNCHANGED // 从文件中加载原图 IplImage *pSrcImage = cvLoadImage("..\\TestPictureData\\15.jpg", CV_LOAD_IMAGE_GRAYSCALE); IplImage *pDstImage = NULL; //计算目标图像大小 czSize.width = pSrcImage->width * fScale; czSize.height = pSrcImage->height * fScale; //创建图像并缩放 pDstImage = cvCreateImage(czSize, pSrcImage->depth, pSrcImage->nChannels); cvResize(pSrcImage, pDstImage, CV_INTER_AREA); // 创建二值图 g_pBinaryImage = cvCreateImage(cvGetSize(pDstImage), pSrcImage->depth, pSrcImage->nChannels); // 转为二值图 cvThreshold(pDstImage, g_pBinaryImage,0,255,CV_THRESH_OTSU);//使用OTSU自动寻找二值化阈值 //保存图片 cvSaveImage("..\\TestPictureData\\sxt15.jpg", pDstImage); cvSaveImage("..\\TestPictureData\\BI15.jpg", g_pBinaryImage); //二值图像平滑处理,包括其中的多种滤波方法 IplImage *g_pBinaryImage1 = cvCreateImage(cvGetSize(pDstImage), pSrcImage->depth, pSrcImage->nChannels); cvSmooth(g_pBinaryImage,g_pBinaryImage1,CV_MEDIAN,3,3,0,0); //中值滤波CV_MEDIAN,高斯滤波CV_GAUSSIAN,领域平均滤波CV_BLUR cvSaveImage("..\\TestPictureData\\BI15-1.jpg",g_pBinaryImage1); // 显示原图 cvNamedWindow("原图", CV_WINDOW_AUTOSIZE); cvShowImage("原图", pDstImage); // 创建二值图窗口 cvNamedWindow("二值图", CV_WINDOW_AUTOSIZE); // 显示二值图 cvShowImage("二值图", g_pBinaryImage1);cvWaitKey(0); cvDestroyWindow("原图"); //cvDestroyWindow(pstrWindowsSrcTitle); cvDestroyWindow("二值图"); //cvReleaseImage(&pSrcImage);// cvReleaseImage(&contoursImage); cvReleaseImage(&g_pBinaryImage1); cvReleaseImage(&pDstImage);

OpenCV图像自适应阈值二值化及图像平滑处理
OpenCV图像自适应阈值二值化及图像平滑处理
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢