java+对图像进行直线检测_Java调用OpenCV进行Hough变换直线检测
private BitmapHoughTransFormLine(Bitmap bmp)
{
Mat rgbMat = new Mat(); //存储原图像的矩阵
Mat grayMat = new Mat(); //存储灰度图像的矩阵
Mat lineMat = new Mat(); //存储检测出的直线坐标的矩阵,每个element有4个通道,第1、2个通道为直线的1个端点,第3、4个通道为直线的另1个端点
Utils.bitmapToMat(bmp, rgbMat);
Imgproc.cvtColor(rgbMat,grayMat, Imgproc.COLOR_RGB2GRAY); //灰度化
Imgproc.Canny(grayMat, grayMat,50, 200); //Canny边缘检测
/* Hough变换标记直线
* public static void HoughLinesP(Matimage, Mat lines, double rho, double theta, int threshold)
* image - 8-bit, single-channel binary source image. The image may bemodified by the function.
* lines - Output vector of lines. Each line is represented by a 4-elementvector (x_1, y_1, x_2, y_2),
* where (x_1,y_1) and (x_2, y_2) arethe ending points of each detected line segment.
* rho - Distance resolution of the accumulator in pixels.
* theta - Angle resolution of theaccumulator in radians.
* threshold - Accumulator threshold parameter. Only those lines arereturned that get enough votes (>threshold).
*/
Imgproc.HoughLinesP(grayMat,lineMat, 1, Math.PI/180,50, 50.0, 10.0);
int[] a = new int[(int)lineMat.total()*lineMat.channels()]; //数组a存储检测出的直线端点坐标
lineMat.get(0,0,a);
for (int i = 0; i < a.length; i += 4)
{
Core.line(grayMat, new Point(a[i], a[i+1]), new Point(a[i+2], a[i+3]), new Scalar(255, 0, 255),4);
}
//创建一个图像
Bitmap newBmp = Bitmap.createBitmap(bmp.getWidth(),bmp.getHeight(), Config.RGB_565);
//将矩阵grayMat转换为图像
Utils.matToBitmap(grayMat,newBmp);
rgbMat = null;
grayMat = null;
lineMat = null;
a = null;
return newBmp;
}
java+对图像进行直线检测_Java调用OpenCV进行Hough变换直线检测相关推荐
- Hough变换直线检测
作者:云外阳光 链接:https://www.zhihu.com/question/35268803/answer/82100453 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转 ...
- 【车道线识别】基于matlab hough变换道路检测直线检测【含Matlab源码 2074期】
⛄一.Hough变换图片车道线检测简介 1 引言 随着人们生活水平的提高, 科技的不断进步, 智能驾驶技术逐渐受到了研究者们的广泛研究和关注.先进驾驶辅助系统 (Advanced Driver Ass ...
- 【机器视觉学习笔记】Hough变换直线检测(C++)
目录 源码 效果 平台:Windows 10 20H2 Visual Studio 2015 OpenCV 4.5.3 本文源码摘自OpenCV2马拉松第22圈--Hough变换直线检测原理与实现 源 ...
- OpenCV2马拉松第22圈——Hough变换直线检測原理与实现
计算机视觉讨论群162501053 转载请注明:http://blog.csdn.net/abcd1992719g/article/details/27220445 收入囊中 Hough变换 概率Ho ...
- java本地方法出现问题怎么办_Java调用本地方法又是怎么一回事
JNI JNI即Java Native Interface,它能在Java层实现对本地方法的调用,一般本地的实现语言主要是C/C++,其实从虚拟机层面来看JNI挺好理解,JVM主要使用C/C++ 和少 ...
- hough变换直线检测_CV学习笔记(十五):直线检测
在这一篇文章中我们将学习使用OpenCV中的 HoughLines 函数和 HoughLinesP 函数来检测图像中的直线. 在这个函数中,使用的是霍夫变换(Hough Transform) 这是计算 ...
- 图像分割 - Hough变换直线检测
目录 1. Hough 直线检测 2. HoughLinesP 函数 1. Hough 直线检测 霍夫变换(Hough 变换):利用对偶原理,把原空间的问题转换到对偶空间去求解 这里涉及到空间转换,将 ...
- Hough变换——直线检测(投票方法实现)
Hough变换介绍 Hough变换介绍: 简单来说,就是一个叫做Hough的人提出的,主要是将空间坐标转换到参数空间.比如一条直线:y = kx + b吧,我们看到这个后就会想到用x,y两个轴, ...
- 【yolov4目标检测】(4) opencv+yolov4-tiny 实现选择性目标检测,附python完整代码
各位同学好,今天和大家分享一下如何使用 opencv 调用 yolov4-tiny 目标检测方法,并对指定类别进行检测.用b站的视频做测试. 点击按钮 'all',按钮变红色,对所有的类别检测 点击按 ...
最新文章
- 企业想独立完成网站建设也不是不可以
- python 图标字体_Icon-font图标字体的四类制作方法
- jstack Dump日志文件中的线程状态
- c语言关键字中文意思,C语言的32个关键字是什么意思啊
- lintcode:Number of Islands 岛屿的个数
- 关于18183-王者荣耀专区网站的TDK简要分析(更多内容请访问http://www.eduaskx6.com/)...
- Elsevier(爱思唯尔)论文模板下载地址及说明
- 网络安全学习相关网站
- Ajax案例:简易的购书网页
- php实现短信验证功能
- S3C2440裸机------内存控制器
- 当黑客被抓是种怎样的体验?
- Java基础笔记day01
- 坚持#第235天~哎呀,最近培训云计算忙得都把写博客的大事给忘了,赶快捡起来
- 北上广深——这无处安放的肉身
- gem install factory_girl
- 电子方面相关术语英中对照表
- python后端开发简历分享_Python后端开发工程师面试
- js-09二级联动购物车案例
- 一款全屏展示的流量卡官网单页模板源码