《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);
}
图像二值化的思路是:
加载图像 -> 转为灰度图 -> 转为二值化图-> 显示出来
加载图像与显示图像上一篇已经有讲了,这里不赘述;
转为灰度图:
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);
}
相关文章推荐
- OpenCV从入门到放弃(八):空间滤波与边缘检测
- OpenCV从入门到放弃系列之——如何扫描图像、利用查找表和计时
- OpenCV从入门到放弃(一):介绍与双平台安装OpenCV3.1
- OpenCV从入门到放弃(二):架构和上手
- OpenCV从入门到放弃系列之——图像的基本操作
- OpenCV从入门到放弃:摸鱼笔记(一)
- OpenCV从入门到放弃(七):直方图那些事儿
- OpenCV从入门到放弃:摸鱼笔记(二)Mat类常用变量和像素访问
- OpenCV从入门到放弃(三):Core组件细讲
- OpenCV从入门到放弃(五):像素!
- OpenCV从入门到放弃(四):HighGui组件细讲
- OpenCV从入门到放弃系列之——core模块.核心功能(一)
- 《Opencv从入门到放弃》-- 1th 显示图像
- OpenCV从入门到放弃(五):像素!
- opencv环境配置 从入门到放弃.....
- 【OpenCV入门教程之十三】OpenCV图像金字塔:高斯金字塔、拉普拉斯金字塔与图片尺寸缩放
- 【OpenCV入门教程之三】 图像的载入,显示和输出 一站式完全解析
- OpenCV学习笔记: 快速入门例程
- 【OpenCV入门指南】第五篇 轮廓检测
- python opencv入门 鼠标绘图(4)