一些基本的opencv图像预处理函数直接用法(灰度化,otsu二值化,腐蚀膨胀,canny)
2016-04-13 17:24
537 查看
#include <cv.h>
#include <cxcore.h>
#include <highgui.h>
using namespace std;
using namespace cv;
int main(int argc, char** argv)
{
const char* filename = "YinZhang\\0004.jpg";
IplImage * pSrcImg=NULL;
IplImage * pGrayImg = NULL;
IplImage * pOtsu = NULL;
IplImage * erode =NULL;
IplImage * dilate = NULL;
IplImage * pCanny=NULL;
int threshold=1;
pSrcImg = cvLoadImage(filename,1);
pGrayImg = cvCreateImage(cvGetSize(pSrcImg),IPL_DEPTH_8U,1);
pOtsu= cvCreateImage(cvGetSize(pSrcImg),IPL_DEPTH_8U,1);
pCanny=cvCreateImage(cvGetSize(pSrcImg),IPL_DEPTH_8U,1);
erode = cvCreateImage(cvGetSize(pSrcImg), 8, 1);
dilate = cvCreateImage(cvGetSize(pSrcImg), 8, 1);
cvCvtColor(pSrcImg, pGrayImg, COLOR_BGR2GRAY);//图像灰度化
cvThreshold(pGrayImg, pOtsu, 0, 255, CV_THRESH_BINARY | CV_THRESH_OTSU);//大津法
cvDilate(pOtsu,dilate, NULL,1); //膨胀
cvErode( dilate,erode, NULL,3); //腐蚀 (先膨胀后腐蚀为闭运算)
cvCanny(pOtsu, pCanny, threshold, threshold * 3, 3); //canny算子边缘检测
cvNamedWindow( "grayImg", 1 );
cvShowImage( "grayImg", pGrayImg );
cvNamedWindow( "otuImg", 1 );
cvShowImage( "otuImg", pOtsu);
cvNamedWindow("canny",1);
cvShowImage("canny", pCanny);
//cvNamedWindow("Dilate",1);
//cvShowImage ("Dilate",dilate);
//cvNamedWindow( "erode",1);
//cvShowImage ("erode",erode);
cvWaitKey(0);
return 0;
}
#include <cxcore.h>
#include <highgui.h>
using namespace std;
using namespace cv;
int main(int argc, char** argv)
{
const char* filename = "YinZhang\\0004.jpg";
IplImage * pSrcImg=NULL;
IplImage * pGrayImg = NULL;
IplImage * pOtsu = NULL;
IplImage * erode =NULL;
IplImage * dilate = NULL;
IplImage * pCanny=NULL;
int threshold=1;
pSrcImg = cvLoadImage(filename,1);
pGrayImg = cvCreateImage(cvGetSize(pSrcImg),IPL_DEPTH_8U,1);
pOtsu= cvCreateImage(cvGetSize(pSrcImg),IPL_DEPTH_8U,1);
pCanny=cvCreateImage(cvGetSize(pSrcImg),IPL_DEPTH_8U,1);
erode = cvCreateImage(cvGetSize(pSrcImg), 8, 1);
dilate = cvCreateImage(cvGetSize(pSrcImg), 8, 1);
cvCvtColor(pSrcImg, pGrayImg, COLOR_BGR2GRAY);//图像灰度化
cvThreshold(pGrayImg, pOtsu, 0, 255, CV_THRESH_BINARY | CV_THRESH_OTSU);//大津法
cvDilate(pOtsu,dilate, NULL,1); //膨胀
cvErode( dilate,erode, NULL,3); //腐蚀 (先膨胀后腐蚀为闭运算)
cvCanny(pOtsu, pCanny, threshold, threshold * 3, 3); //canny算子边缘检测
cvNamedWindow( "grayImg", 1 );
cvShowImage( "grayImg", pGrayImg );
cvNamedWindow( "otuImg", 1 );
cvShowImage( "otuImg", pOtsu);
cvNamedWindow("canny",1);
cvShowImage("canny", pCanny);
//cvNamedWindow("Dilate",1);
//cvShowImage ("Dilate",dilate);
//cvNamedWindow( "erode",1);
//cvShowImage ("erode",erode);
cvWaitKey(0);
return 0;
}
相关文章推荐
- linux下python3.4配置matplotlib的问题
- tomcat架构分析(valve机制)
- tomcat部署项目的各种方式
- shell script中的 if判断,及test命令
- 关于angularjs中ngOptions的简单介绍
- 嵌入式应用对实时Linux系统剪裁和开发的思路
- 【linux】Ubuntu下自己编译安装和卸载软件
- Java提取两个文件夹中的有差异的文件并生成相应的shell脚本
- Linux基础实践
- hadoop2.4以后版本的HA高可用模式配置详解
- Linux命令(面试题)
- Apache Lucene(全文检索引擎)—创建索引
- Stanford Topic Modeling Toolbox0.4.0翻译
- 4-Nginx 日志管理
- linux read/write和fread/fwrite有什么区别
- nginx---Beginner's Guide
- Centos 7中文语言包的安装及中文支持
- 3-Nginx 命令详解
- Ubuntu 配置 Tomcat
- Kafka剖析(一):Kafka背景及架构介绍