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变换直线检测相关推荐

  1. Hough变换直线检测

    作者:云外阳光 链接:https://www.zhihu.com/question/35268803/answer/82100453 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转 ...

  2. 【车道线识别】基于matlab hough变换道路检测直线检测【含Matlab源码 2074期】

    ⛄一.Hough变换图片车道线检测简介 1 引言 随着人们生活水平的提高, 科技的不断进步, 智能驾驶技术逐渐受到了研究者们的广泛研究和关注.先进驾驶辅助系统 (Advanced Driver Ass ...

  3. 【机器视觉学习笔记】Hough变换直线检测(C++)

    目录 源码 效果 平台:Windows 10 20H2 Visual Studio 2015 OpenCV 4.5.3 本文源码摘自OpenCV2马拉松第22圈--Hough变换直线检测原理与实现 源 ...

  4. OpenCV2马拉松第22圈——Hough变换直线检測原理与实现

    计算机视觉讨论群162501053 转载请注明:http://blog.csdn.net/abcd1992719g/article/details/27220445 收入囊中 Hough变换 概率Ho ...

  5. java本地方法出现问题怎么办_Java调用本地方法又是怎么一回事

    JNI JNI即Java Native Interface,它能在Java层实现对本地方法的调用,一般本地的实现语言主要是C/C++,其实从虚拟机层面来看JNI挺好理解,JVM主要使用C/C++ 和少 ...

  6. hough变换直线检测_CV学习笔记(十五):直线检测

    在这一篇文章中我们将学习使用OpenCV中的 HoughLines 函数和 HoughLinesP 函数来检测图像中的直线. 在这个函数中,使用的是霍夫变换(Hough Transform) 这是计算 ...

  7. 图像分割 - Hough变换直线检测

    目录 1. Hough 直线检测 2. HoughLinesP 函数 1. Hough 直线检测 霍夫变换(Hough 变换):利用对偶原理,把原空间的问题转换到对偶空间去求解 这里涉及到空间转换,将 ...

  8. Hough变换——直线检测(投票方法实现)

    Hough变换介绍 Hough变换介绍:    简单来说,就是一个叫做Hough的人提出的,主要是将空间坐标转换到参数空间.比如一条直线:y = kx + b吧,我们看到这个后就会想到用x,y两个轴, ...

  9. 【yolov4目标检测】(4) opencv+yolov4-tiny 实现选择性目标检测,附python完整代码

    各位同学好,今天和大家分享一下如何使用 opencv 调用 yolov4-tiny 目标检测方法,并对指定类别进行检测.用b站的视频做测试. 点击按钮 'all',按钮变红色,对所有的类别检测 点击按 ...

最新文章

  1. 企业想独立完成网站建设也不是不可以
  2. python 图标字体_Icon-font图标字体的四类制作方法
  3. jstack Dump日志文件中的线程状态
  4. c语言关键字中文意思,C语言的32个关键字是什么意思啊
  5. lintcode:Number of Islands 岛屿的个数
  6. 关于18183-王者荣耀专区网站的TDK简要分析(更多内容请访问http://www.eduaskx6.com/)...
  7. Elsevier(爱思唯尔)论文模板下载地址及说明
  8. 网络安全学习相关网站
  9. Ajax案例:简易的购书网页
  10. php实现短信验证功能
  11. S3C2440裸机------内存控制器
  12. 当黑客被抓是种怎样的体验?
  13. Java基础笔记day01
  14. 坚持#第235天~哎呀,最近培训云计算忙得都把写博客的大事给忘了,赶快捡起来
  15. 北上广深——这无处安放的肉身
  16. gem install factory_girl
  17. 电子方面相关术语英中对照表
  18. python后端开发简历分享_Python后端开发工程师面试
  19. js-09二级联动购物车案例
  20. 一款全屏展示的流量卡官网单页模板源码

热门文章

  1. Binary classification - 聊聊评价指标的那些事儿【回忆篇】
  2. 返回一个整数数组中最大子数组的和---环形数组
  3. 【洛谷 P1070】道路游戏 (DP)
  4. 20-spring学习-Spring MVC基本操作
  5. Android PdfViewer
  6. leveldb - sstable格式
  7. ckeditor编辑的使用方法
  8. linux mysql更改用户权限
  9. VSFLEXgrid控件几个特殊的属性方法的使用
  10. JavaScript初学者系列一:JavaScript基础(上)