利用OpenCV提取图像的边缘,并将检测的边缘重新保存在一个新的文件中
来源:互联网 发布:3d平面设计软件 编辑:程序博客网 时间:2024/05/19 12:15
本篇博客主要介绍如何使用OpenCV提取图片的轮廓,并将图片重新保存在新的文件中,实现起来也很简单,OpenCV的sdk中提供了相应的方法,只需要调用即可,具体代码如下所示:
#include <iostream>#include <opencv2\opencv.hpp>using namespace std;using namespace cv;//声明使用的命名空间const char * source_window = "source"; //声明原图显示的窗口名称const char* canny_window = "canny";//声明处理过后的图片显示的窗口名称int main() { Mat source = imread("fifth.jpg", 1); //加载一个图片到Mat中 Mat temp(source.rows, source.cols, CV_8UC1); //根据原有的一个Mat创建一个新的单通道的Mat cvtColor(source, temp, COLOR_BGR2GRAY);//将原来的彩色图片转化成灰色图片 //Canny方法要求输入的图片为单通道的Mat,所以才有了上一步的转换,在OpenCV中,很多的处理都是讲原有 //的彩色图片转化成灰色在进行处理的 //进行轮廓提取。并将提取出来的轮廓图重新存储在temp中,相当于 //直接改动temp对应的内存的值 //50 ,200为阈值 Canny(temp, temp, 50, 200); //将temp中的数据转化成对应格式的图片并存储在指定的文件中,默认存在当前项目路径下 imwrite("fifth_canny.jpg", temp); //用于显示原图和处理过的图片 cvNamedWindow(source_window); cvNamedWindow(canny_window); imshow(source_window, source); imshow(canny_window, temp); waitKey(5*1000);//等待5秒,5秒后自动销毁显示窗口,结束主程序 cvDestroyWindow(source_window); cvDestroyWindow(canny_window); return 0;}
程序运行的效果如下图所示:
原图:
处理过后的图片:
通过查看项目目录可以看到,在项目目录下生成一个新的图片文件:
好了,关于OpenCV的图片加载和保存就说到这,有兴趣的朋友可以以关注我,遇到问题大家一起讨论一下!!
这是我的微信公众号,如果可以的话,希望您可以帮忙关注一下,这将是对我最大的鼓励了,谢谢!!
项目代码会上传至GitHub中,地址:项目代码地址
阅读全文
1 0
- 利用OpenCV提取图像的边缘,并将检测的边缘重新保存在一个新的文件中
- 图像的边缘提取
- 图像的边缘提取
- 图像的边缘提取
- 图像的边缘提取
- 图像的边缘检测
- 图像的边缘检测
- opencv 图像的边缘
- 检测图像边缘(包括障碍物的边缘,道路边缘)算法
- 简单的图像边缘检测
- Opencv的Canny边缘检测
- 基于opencv的边缘检测
- opencv提取图像边缘特征sobel算子的运用
- 利用Canny边缘检测算子进行边缘检测的原理及OpenCV代码实现
- 【OpenCV】图像的变换(三)-Canny边缘检测
- opencv图像边缘检测Canny算子的总结分析
- 图像腐蚀,模糊,canny边缘检测,opencv中摄像头捕捉的图像
- 利用openCV中的cvCanny函数检测人脸的边缘
- 这两天学习了如何创建钱包,今天讲3个Zcash钱包的命令,感觉我接下来用得到
- 微信原样返回echostr也无法验证通过的原因
- 2D图形加速引擎(GE2D)
- day2
- <JavaSE> JVM相关知识点
- 利用OpenCV提取图像的边缘,并将检测的边缘重新保存在一个新的文件中
- GNU项目
- 对象的默认原型链
- webpack模块加载介绍
- MFC 多个RadioButton设为一组 vs2013
- nio的实现原理
- 谈一谈苹果原生的布局框架 NSLayoutConstraint 和 VFL
- Retrofit 2.X使用详解之请求头
- 路由器web界面分析(四)---学会追踪标签