Candy算子 分割 车辆

简介:

场景

    鉴于仅仅使用二值化函数对图像进行处理,无法对车辆和道路进行完全的轮廓分割,因此通过Candy算子在阀值在19的情况下,一定程度上,对车辆的轮廓进行了分割,达到了不错的效果


代码

//图像的Canny边缘检测

//By MoreWindows (http://blog.csdn.net/MoreWindows)

#include <opencv2/opencv.hpp>

using namespace std;

IplImage *g_pSrcImage, *g_pCannyImg;

const char *pstrWindowsCannyTitle = "边缘检测图(http://blog.csdn.net/MoreWindows)";

//cvCreateTrackbar的回调函数

void on_trackbar(int threshold)

{

  //canny边缘检测

  cvCanny(g_pSrcImage, g_pCannyImg, threshold, threshold * 3, 3);

  cvShowImage(pstrWindowsCannyTitle, g_pCannyImg);

}

int main()

{

  const char *pstrImageName = "001.jpg";

  const char *pstrWindowsSrcTitle = "原图(http://blog.csdn.net/MoreWindows)";

  const char *pstrWindowsToolBar = "Threshold";


  //从文件中载入图像的灰度图CV_LOAD_IMAGE_GRAYSCALE - 灰度图

  g_pSrcImage = cvLoadImage("D:/20170601092226.png", CV_LOAD_IMAGE_GRAYSCALE);

  g_pCannyImg = cvCreateImage(cvGetSize(g_pSrcImage), IPL_DEPTH_8U, 1);


  //创建窗口

  cvNamedWindow(pstrWindowsSrcTitle, CV_WINDOW_AUTOSIZE);

  cvNamedWindow(pstrWindowsCannyTitle, CV_WINDOW_AUTOSIZE);


  //创建滑动条

  int nThresholdEdge = 1;

  cvCreateTrackbar(pstrWindowsToolBar, pstrWindowsCannyTitle, &nThresholdEdge, 100, on_trackbar);


  //在指定窗口中显示图像

  cvShowImage(pstrWindowsSrcTitle, g_pSrcImage);

  on_trackbar(1);


  //等待按键事件

  cvWaitKey();


  cvDestroyWindow(pstrWindowsSrcTitle);

  cvDestroyWindow(pstrWindowsCannyTitle);

  cvReleaseImage(&g_pSrcImage);

  cvReleaseImage(&g_pCannyImg);

  return 0;

}


参考

http://blog.csdn.net/morewindows/article/details/8239625





     本文转自fengyuzaitu 51CTO博客,原文链接:http://blog.51cto.com/fengyuzaitu/1596834,如需转载请自行联系原作者




相关文章
|
10月前
|
敏捷开发 存储 BI
项目管理工具评测:5款适合团队使用的简洁、高效的工具推荐
项目管理工具对于提升团队效率和确保项目成功至关重要。本文介绍了五款高效工具:板栗看板、Zoho Projects、TeamGantt、LiquidPlanner和Smartsheet,它们分别擅长任务管理、团队协作、甘特图规划、智能资源管理和电子表格式项目管理,满足不同团队的需求。
项目管理工具评测:5款适合团队使用的简洁、高效的工具推荐
|
10月前
|
机器学习/深度学习 自然语言处理
差分Transformer竟能消除注意力噪声,犹如降噪耳机
差分Transformer是一种创新的自然语言处理模型,通过计算两个独立softmax注意力图之间的差异来消除注意力噪声,提高信息检索和生成的准确性。该模型在语言建模、长文本建模等任务中表现出色,但计算复杂度较高且参数数量较多。
208 11
|
11月前
|
JavaScript 前端开发 应用服务中间件
Vue开发中,在实现单页面应用(SPA)前端路由时的hash模式和history模式的区别及详细介绍
Vue开发中,在实现单页面应用(SPA)前端路由时的hash模式和history模式的区别及详细介绍
366 0
|
6月前
|
数据采集 资源调度 JavaScript
极致的灵活度满足工程美学:用Vue Flow绘制一个完美流程图
本文介绍了使用 Vue Flow 绘制流程图的方法与技巧。Vue Flow 是一个灵活强大的工具,适合自定义复杂的流程图。文章从环境要求(Node.js v20+ 和 Vue 3.3+)、基础入门案例、自定义功能(节点与连线的定制、事件处理)到实际案例全面解析其用法。重点强调了 Vue Flow 的高度灵活性,虽然预定义内容较少,但提供了丰富的 API 支持深度定制。同时,文中还分享了关于句柄(handles)的使用方法,以及如何解决官网复杂案例无法运行的问题。最后通过对比 mermaid,总结 Vue Flow 更适合需要高度自定义和复杂需求的场景,并附带多个相关技术博客链接供进一步学习。
echarts仪表盘更换样式全圆形换成半圆
echarts仪表盘更换样式全圆形换成半圆
304 0
|
前端开发 Java 数据库
基于SSM框架实现的甜品饮品店前后台管理系统甜品商城蛋糕店【源码+数据库】
基于SSM框架实现的甜品饮品店前后台管理系统甜品商城蛋糕店【源码+数据库】
170 0
|
算法 前端开发 数据建模
Solr&lucene 默认的spatial search性能总结
假期重新把之前在新浪博客里面的文字梳理了下,搬到这里。介绍地理搜索性能优化的一些经验。
236 0
|
Java Unix 程序员
据说不知道这些大神的程序员不是真正的程序员
有这样一批IT界的牛人们, 他们做出的那些常人难以企及的开创性工作,常常让我们叹而观止,仅仅用“牛”来形容已经不够了, 得用“神一样的超级程序员” 才能表达敬仰之情,这里总结一下,可以作为大家茶余饭后的谈资 :-)
3525 0
|
2天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1082 0
|
11天前
|
人工智能 运维 安全