Java之Opencv的Canny 边缘检测-yellowcong

图片处理,先是将图片进行灰化处理,然后平滑处理,让像素更加的自然,平滑后,获取的轮廓更加的圆滑,最后通过轮廓查找,可以找到我们需要的目标。

代码地址

#码云地址
https://gitee.com/yellowcong/opencv

#github
https://github.com/yellowcong/opencv

处理效果

原图
这里写图片描述

灰化并平滑处理(平滑后的处理,只管的发现,图片优点模糊了)
这里写图片描述

轮廓。没有平滑处理的
这里写图片描述

轮廓图,大家可以看到,背景几乎都给干掉了,只剩下美女的这些边缘轮廓图了(这个是平滑后的)
这里写图片描述

实现代码

package yellowcong.day01_06;

import java.io.File;

import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.Size;
import org.opencv.highgui.Highgui;
import org.opencv.imgproc.Imgproc;

import com.yellowcong.face.FaceDemo;

/**
 * 创建日期:2018年1月7日
 * 创建时间:上午10:38:06
 * 创建者    :yellowcong
 * 机能概要:利用Opencv获取图片的轮廓
 */
public class Demo3 {
    public static void main(String[] args) {
        //图片地址
        String inputImagePath = FaceDemo.class.getClassLoader().getResource("pics/demo.jpg").getFile();

        String outPath = "D:/demo2.png";

        //加载lib,这个lib的名称
        System.loadLibrary(Core.NATIVE_LIBRARY_NAME);

        //读取图片信息
        Mat image = Highgui.imread(new File(inputImagePath).getAbsolutePath());

        //将rgb灰化处理
        Imgproc.cvtColor(image, image,Imgproc.COLOR_BGR2GRAY);

        //平滑处理
        Imgproc.blur(image, image, new Size(2, 2));

        //轮廓
        //使用Canndy检测边缘
        double lowThresh =100;//双阀值抑制中的低阀值 
        double heightThresh = 300;//双阀值抑制中的高阀值
        Imgproc.Canny(image, image,lowThresh, heightThresh);

        // 写入到文件
        Highgui.imwrite(outPath, image);


    }
}
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

狂飙的yellowcong

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值