OpenCV入门:图像边缘提取
2016-03-21 16:59
369 查看
本文将介绍如何利用OpenCV进行边缘提取,源代码如下:
//
// main.cpp
// Edge_Detection
//
// Created by 黄露 on 16/3/21.
// Copyright © 2016年 huanglu_thu13. All rights reserved.
//
#include "cv.h"
#include "highgui.h"
int main(int argc, const char * argv[]) {
//创建两个窗口显示处理前后的图片
cvNamedWindow("Imgae Before Processing");
cvNamedWindow("Image After Processing");
//创建图像指针,加载图像至内存
IplImage * in = cvLoadImage("/Users/huanglu/Pictures/thusada.jpg",1);
//创建一个图像来存储处理后的图片
IplImage * out = cvCreateImage(cvGetSize(in), in->depth, 1);
//设置上下阈值和算子内核大小
double low = 10;
double high = 100;
double aperture = 3;
//进行边缘提取
cvCanny(in, out, low, high, aperture);
//显示处理前后的图片
cvShowImage("Imgae Before Processing", in);
cvShowImage("Imgae After Processing", out);
//释放图像指针
cvReleaseImage(&in);
cvReleaseImage(&out);
//等待用户输入任意键结束
cvWaitKey(0);
//释放两个窗口
cvDestroyWindow("Imgae Before Processing");
cvDestroyWindow("Imgae After Processing");
return 0;
}其中,cvCanny采用canny算法对图像的边缘检测,其声明为:
void cvCanny( const CvArr* image,CvArr* edges,double threshold1,double threshold2, int aperture_size=3 );
其中
image 输入单通道图像(可以是彩色图像)对于多通道的图像可以用cvCvtColor()修改。
edges 输出的边缘图像 ,也是单通道的,但是是黑白的
threshold1 第一个阈值
threshold2 第二个阈值
aperture_size Sobel 算子内核大小
函数 cvCanny 采用 Canny 算法发现输入图像的边缘而且在输出图像中标识这些边缘。threshold1和threshold2 当中的小阈值用来控制边缘连接,大的阈值用来控制强边缘的初始分割。
//
// main.cpp
// Edge_Detection
//
// Created by 黄露 on 16/3/21.
// Copyright © 2016年 huanglu_thu13. All rights reserved.
//
#include "cv.h"
#include "highgui.h"
int main(int argc, const char * argv[]) {
//创建两个窗口显示处理前后的图片
cvNamedWindow("Imgae Before Processing");
cvNamedWindow("Image After Processing");
//创建图像指针,加载图像至内存
IplImage * in = cvLoadImage("/Users/huanglu/Pictures/thusada.jpg",1);
//创建一个图像来存储处理后的图片
IplImage * out = cvCreateImage(cvGetSize(in), in->depth, 1);
//设置上下阈值和算子内核大小
double low = 10;
double high = 100;
double aperture = 3;
//进行边缘提取
cvCanny(in, out, low, high, aperture);
//显示处理前后的图片
cvShowImage("Imgae Before Processing", in);
cvShowImage("Imgae After Processing", out);
//释放图像指针
cvReleaseImage(&in);
cvReleaseImage(&out);
//等待用户输入任意键结束
cvWaitKey(0);
//释放两个窗口
cvDestroyWindow("Imgae Before Processing");
cvDestroyWindow("Imgae After Processing");
return 0;
}其中,cvCanny采用canny算法对图像的边缘检测,其声明为:
void cvCanny( const CvArr* image,CvArr* edges,double threshold1,double threshold2, int aperture_size=3 );
其中
image 输入单通道图像(可以是彩色图像)对于多通道的图像可以用cvCvtColor()修改。
edges 输出的边缘图像 ,也是单通道的,但是是黑白的
threshold1 第一个阈值
threshold2 第二个阈值
aperture_size Sobel 算子内核大小
函数 cvCanny 采用 Canny 算法发现输入图像的边缘而且在输出图像中标识这些边缘。threshold1和threshold2 当中的小阈值用来控制边缘连接,大的阈值用来控制强边缘的初始分割。
相关文章推荐
- PHP GD 图像处理组件的常用函数总结
- PHP图像处理之imagecreate、imagedestroy函数介绍
- jsvascript图像处理―(计算机视觉应用)图像金字塔
- Javascript图像处理思路及实现代码
- python中使用OpenCV进行人脸检测的例子
- opencv 做人脸识别 opencv 人脸匹配分析
- 使用opencv拉伸图像扩大分辨率示例
- PHP图像处理之使用imagecolorallocate()函数设置颜色例子
- java数字图像处理基础使用imageio写图像文件示例
- 使用Java进行图像处理的一些基础操作
- javascript图像处理―边缘梯度计算函数
- Javascript图像处理―阈值函数实例应用
- Javascript图像处理―虚拟边缘介绍及使用方法
- 基于C++实现kinect+opencv 获取深度及彩色数据
- OpenCV 2.4.3 C++ 平滑处理分析
- PHP图像处理类库及演示分享
- php图像处理函数大全(推荐收藏)
- Javascript图像处理―图像形态学(膨胀与腐蚀)
- Javascript图像处理―平滑处理实现原理
- Python中使用OpenCV库来进行简单的气象学遥感影像计算