您的位置:首页 > 运维架构

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

2017-03-05 18:14 295 查看
接着上回的来说,今天记录一下图像的二值化。

图像二值化的思路是:

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

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

转为灰度图:

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);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: