函数功能:采用Canny方法对图像进行边缘检测
函数原型:
voidcvThreshold(
constCvArr*src,
CvArr*dst,
doublethreshold,
doublemax_value,
intthreshold_type
);
函数说明:
第一个参数表示输入图像,必须为单通道灰度图。
第二个参数表示输出的边缘图像,为单通道黑白图。
第三个参数表示阈值,大于此值为白(255),小于此值为黑(0)。
第四个参数表示最大值。
第五个参数表示运算方法。
// TestC.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <opencv.hpp>
#include <cxcore.h>
#include <highgui.h>
#include <stdio.h>
int main()
{
IplImage *ImageInfo = cvLoadImage("1.jpg");//读取图像
unsigned short mWide = ImageInfo->width;
unsigned short mHeight = ImageInfo->height;
unsigned char *ImageData = (unsigned char*)ImageInfo->imageData;
unsigned char nChannel = ImageInfo->nChannels;
//double fscale=0.314;//缩放系数
// int SmallWide =mWide*fscale;//缩放后的宽度
//int SmallHeight=mHeight*fscale;//缩放后的高度
IplImage *GrayImage = cvCreateImage(cvSize(mWide,mHeight),8,1);//新建图像函数
//IplImage *SmallImage = cvCreateImage(cvSize(SmallWide,SmallHeight),8,3);//新建缩放图像函数
IplImage *BinaryImage = cvCreateImage(cvSize(mWide,mHeight),8,1);//新建二值化图像函数
cvCvtColor(ImageInfo,GrayImage,CV_RGB2GRAY);//将彩色图像改为灰度图像
//cvResize(ImageInfo,SmallImage,CV_INTER_AREA);//将图像缩放
cvThreshold(GrayImage,BinaryImage,180,255,CV_THRESH_BINARY);//转为二值图
//printf("mWide = %d\r\n mHeight = %d\r\n nChannel = %d\r\n SmallWide=%d\r\n SmallHeight=%d\r\n",mWide,mHeight,nChannel,SmallWide,SmallHeight);
cvNamedWindow("the Image of show:");//创建窗口函数
cvShowImage("the Image of show:",ImageInfo);//显示函数
cvNamedWindow("the GrayImage of show:");//创建窗口函数
cvShowImage("the GrayImage of show:",GrayImage);//显示函数
//cvNamedWindow("缩放图:");//创建窗口函数
//cvShowImage("缩放图:",SmallImage);//显示函数
cvNamedWindow("二值图:");//创建窗口函数
cvShowImage("二值图:",BinaryImage);//显示函数
cvWaitKey(-2);//等待按键事件
return 0;
}