《OpenCV从入门到放弃》 -- 2th 图像二值化

来源:互联网 发布:龙卷风优化软件 编辑:程序博客网 时间:2024/05/16 15:17

接着上回的来说,今天记录一下图像的二值化。

图像二值化的思路是:

加载图像 -> 转为灰度图 -> 转为二值化图-> 显示出来

加载图像与显示图像上一篇已经有讲了,这里不赘述;

转为灰度图:

g_pGrayImage =  cvCreateImage(cvGetSize(src), IPL_DEPTH_8U, 1);  //src是读入的图片

cvCvtColor(src, g_pGrayImage, CV_BGR2GRAY); 

二值化:

 g_pBinaryImage = cvCreateImage(cvGetSize(g_pGrayImage), IPL_DEPTH_8U, 1);

   cvThreshold(g_pGrayImage, g_pBinaryImage, 95, 255, CV_THRESH_BINARY);   //95代表阈值


下面是完整的代码:

/** * Function:    显示一幅图像 * Author  :    靳皓屹 * Date    :    2017/02/28 **/#include "cv.h"#include "highgui.h"#include <stdio.h>#include <stdlib.h>int main( int argc, char** argv ){        IplImage* src = cvLoadImage("cat.jpg",CV_LOAD_IMAGE_ANYCOLOR); // 打开图像              IplImage *g_pGrayImage = NULL , *g_pBinaryImage = NULL;        g_pGrayImage =  cvCreateImage(cvGetSize(src), IPL_DEPTH_8U, 1);        cvCvtColor(src, g_pGrayImage, CV_BGR2GRAY);        g_pBinaryImage = cvCreateImage(cvGetSize(g_pGrayImage), IPL_DEPTH_8U, 1);        cvThreshold(g_pGrayImage, g_pBinaryImage, 95, 255, CV_THRESH_BINARY);        cvNamedWindow("src_im",CV_WINDOW_AUTOSIZE);                   //创建一个窗口        cvShowImage("src_im",src);                                    //在窗口中显示图像        cvNamedWindow("bin_img",CV_WINDOW_AUTOSIZE);                   //创建一个窗口        cvShowImage("bin_img",g_pBinaryImage);                                    //在窗口中显示图像        cvWaitKey(0);}



0 0
原创粉丝点击