Hls平台实现sobel算法(一)
索贝尔(Sobel)算子主要用于边缘检测,根据像素点的上下、左右邻点的灰度加权差与阈值进行比较,在边缘处达到极值的方法实现边缘检测。
-------------序
一、原理性运行
流水线操作,将输入图像从
(1)、hls::AXIvideo2Mat(INPUT_STREAM, img_0);
(2)、hls::Sobel<1,0,3>(img_0, img_1);
(3)、hls::SubS(img_1, pix, img_2);
(4)、hls::Scale(img_2, img_3, 2, 0);
(5)、hls::Erode(img_3, img_4);
(6)、hls::Dilate(img_4, img_5);
(7)、hls::Mat2AXIvideo(img_5, OUTPUT_STREAM);
第(1)步:
将图像转换为Mat格式,是3个8位的像素数据,将转换为mat格式的图像命名为img_0,行、场高度为宏定义
第(2)步:
将转换为mat格式的图像使用Sobel函数进行边缘检测,<1,0,3>分别代表横向检测、纵向检测、检测结果的size,可以为3x3,5x5,7x7。
第(3)步:
元素级的从数组中间去标量,就是img_1减去输入标量pix(10,10,10)
第(4)步:
对sobel函数处理完毕的图像进行比例计算,2为乘法因子,0为加法因子,
第(5)步: 第(6)步:
首先对图像进行膨胀处理,这样边缘更加明显,然后进行侵蚀,作用是滤除毛刺
第(7)步:
将膨胀、侵蚀的结果转换为AXI形式,这样才能在硬件平台进行传输
二、平台验证
int main (int argc, char** argv)
{
//获取图像数据
IplImage* src = cvLoadImage(INPUT_IMAGE);
IplImage* dst = cvCreateImage(cvGetSize(src), src->depth, src->nChannels); //使用HLS库进行处理
AXI_STREAM src_axi, dst_axi;
IplImage2AXIvideo(src, src_axi);
hls_sobel(src_axi, dst_axi, src->height, src->width);
AXIvideo2IplImage(dst_axi, dst);
cvSaveImage(OUTPUT_IMAGE,dst);
cvShowImage("hls_dst", dst); //释放内存
cvReleaseImage(&dst);
}
其流程为:
从头文件中获取输入图像,然后在内存空间中开辟出一块源图像大小的,每个像素占用为数为depth,源通道数目的存储空间。
然后将图像转为AXIstream格式加载到处理函数中,最后将输出图像dst进行显示
Hls平台实现sobel算法(一)的更多相关文章
- Sobel算法
最近看了一些Sobel算法,并试了一下,源码如下: private void Sobel(Bitmap img) { int width = img.Width; int height = img.H ...
- Hadoop平台K-Means聚类算法分布式实现+MapReduce通俗讲解
Hadoop平台K-Means聚类算法分布式实现+MapReduce通俗讲解 在Hadoop分布式环境下实现K-Means聚类算法的伪代码如下: 输入:参数0--存储样本数据的文本文件inpu ...
- opencl+opencv实现sobel算法
这几天在看opencl编程指南.照着书中的样例实现了sobel算法: 1.结合opencv读取图像,保存到缓冲区中. 2.编写和编译内核.并保存显示处理后的结果. 内核: const sampler_ ...
- Java平台调用Python平台已有算法(附源码及解析)
1. 问题描述 Java平台要调用Pyhon平台已有的算法,为了减少耦合度,采用Pyhon平台提供Restful 接口,Java平台负责来调用,采用Http+Json格式交互. 2. 解决方案 2.1 ...
- 14FPGA综设之图像边沿检测的sobel算法
连续学习FPGA基础课程接近一个月了,迎来第一个有难度的综合设计,图像的边沿检测算法sobel,用verilog代码实现算法功能. 一设计功能 (一设计要求) (二系统框图) 根据上面的系统,Veri ...
- Mahout机器学习平台之聚类算法具体剖析(含实例分析)
第一部分: 学习Mahout必需要知道的资料查找技能: 学会查官方帮助文档: 解压用于安装文件(mahout-distribution-0.6.tar.gz),找到例如以下位置.我将该文件解压到win ...
- NlpirParser智能挖掘平台词性标注新算法
词性标注是自然语言浅层理解的一个重要环节,它可帮助系统自动判定词语所属的语法范畴,为进一步处理提供更高层面的支持.词性标注主要任务是消除词性兼类歧义,对于新信息检测来说,它的实际意义还在于: (1)能 ...
- sobel算法的Soc FPGA实现之框架分析(二)
重点分析一.AXI_VDMA_1 之前一直认为这个就是内含有DDR的ip核(......最近才搞懂是个啥),后来经过对FDMA的分析发现这就是个框架,通AXI总线挂载到bus总线,可以实现PL端FPG ...
- 使用hadoop平台运行Apriori算法
https://blog.csdn.net/laotumingke/article/details/66973260 https://blog.csdn.net/qq_24369113/article ...
随机推荐
- OmniGraffle 7使用的探索
进去后可以将界面简化为4个主要区域:工具栏.工具栏.检查器和画布. 1.画布是在项目中创建.编辑和移动对象的地方 2.删除画布 选择编辑 画布删除画布 3.OmniGraffle项目至少需要一个画布 ...
- js 获取滚动位置,滚动到指定位置,平滑滚动
1.获取当前滚动条位置信息 var top = dom.scrollTop; // 获取y轴上的滚动位置 var left = dom.scrollLeft; // 获取x轴上的滚动位置 2.滚动到指 ...
- postman-关联
1.提取 在Tests提取接口1的值如:userid //将获取的json数据赋给变量 var jsonData=pm.response.json(); //获取返回的userid值 user_id= ...
- web上传大文件(>4G)有什么解决方案?
众所皆知,web上传大文件,一直是一个痛.上传文件大小限制,页面响应时间超时.这些都是web开发所必须直面的. 本文给出的解决方案是:前端实现数据流分片长传,后面接收完毕后合并文件的思路. 实现文件夹 ...
- SQL ORDER BY 两个列
ORDER BY 后可加2个字段,用英文逗号隔开. f1用升序, f2降序,sql该这样写 ORDER BY f1, f2 DESC 也可以这样写,更清楚: ORDER BY f1 ASC, ...
- rf-idf的java实现
还存在的问题是,对于其中分词借助的库还存在问题 参考此篇链接 http://www.cnblogs.com/ywl925/archive/2013/08/26/3275878.html 具体代码部分: ...
- 大数据笔记(十九)——数据采集引擎Sqoop和Flume安装测试详解
一.Sqoop数据采集引擎 采集关系型数据库中的数据 用在离线计算的应用中 强调:批量 (1)数据交换引擎: RDBMS <---> Sqoop <---> HDFS.HBas ...
- 转载自:StringUtils的常见方法
转载自:https://blog.csdn.net/simple_smile_sun/article/details/51819158 注:运用StringUtils需要导入相关jar文件,commo ...
- Azure Monitor Kibana configuration always seems to send over SSL
https://github.com/elastic/logstash/issues/10125 https://blogs.cisco.com/security/step-by-step-setup ...
- Oracle redo与undo浅析
http://liwenshui322.iteye.com/blog/1488949 一. 什么是redo(用于前滚数据) redo也就是重做日志文件(redo log file),Oracle维护着 ...