android opencv画轮廓,Android+OpenCv4实现边缘检测及轮廓绘制出图像最大边缘

实现步骤:

图像灰度化

边缘检测

根据Canny检测得出来的Mat寻找轮廓

算出最大轮廓周长or面积

根据获取到的最大轮廓下标进行轮廓绘制

画出最大矩形,并返回Rect

Canny边缘检测

基于Canny算法的边缘检测主要有5个步骤,依次是高斯滤波、像素梯度计算、非极大值像素梯度抑制、滞后阈值处理和孤立弱边缘抑制。Canny在有噪声的情况下表现好不好,取决于前面的降噪过程,可以手动做高斯处理提高识别率。

/**

image 输入图像,必须是CV_8U的单通道或者三通道图像。

edges 输出图像,与输入图像具有相同尺寸的单通道图像,且数据类型为CV_8U。

threshold1 第一个滞后阈值。

threshold2 第二个滞后阈值。

apertureSize Sobel算子的直径。

L2gradient 计算图像梯度幅值方法的标志。默认为false

**/

public static void Canny(Mat image, Mat edges, double threshold1, double threshold2, int apertureSize, boolean L2gradient)

使用

/**

* canny算法,边缘检测

*/

public static Mat canny(Bitmap bitmap) {

Mat mSource = new Mat();

Utils.bitmapToMat(bitmap, mSource);

Mat grayMat = new Mat();</

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值