关闭

OpenCV 边缘检测

标签: opencv边缘检测
394人阅读 评论(0) 收藏 举报
分类:

一. 实验内容

用OpenCV对图片进行边缘检测。

二. 实验代码

//边缘检测
class Task17 {
public:
    void deal() {
        Mat src_img = imread("img\\1.jpg");

        imshow("边缘检测[原图]", src_img);

        Mat gray_img;
        cvtColor(src_img, gray_img, COLOR_BGR2GRAY);

        Mat out1;
        blur(gray_img, out1, Size(11, 11));
        // imshow("滤波效果", out1);
        Canny(out1, out1, 50, 60, 3);
        imshow("Canny边缘检测", out1);

        Mat grad_x, grad_y;
        Mat abs_grad_x, abs_grad_y;
        Sobel(gray_img, grad_x, CV_16S, 1, 0, 3, 1, 1);
        convertScaleAbs(grad_x, abs_grad_x);
        // imshow("Sobel边缘检测x方向", abs_grad_x);
        Sobel(gray_img, grad_y, CV_16S, 0, 1, 3, 1, 1);
        convertScaleAbs(grad_y, abs_grad_y);
        // imshow("Sobel边缘检测y方向", abs_grad_y);
        Mat out2;
        addWeighted(abs_grad_x, 0.5, abs_grad_y, 0.5, 0, out2);
        imshow("Sobel边缘检测", out2);

        Mat blur_img, lap_img, out3;
        GaussianBlur(gray_img, blur_img, Size(3, 3), 0, 0);
        Laplacian(blur_img, lap_img, CV_16S, 3, 1, 0);
        convertScaleAbs(lap_img, out3);
        imshow("Laplacian边缘检测", out3);

        Scharr(gray_img, grad_x, CV_16S, 1, 0, 1, 0);
        convertScaleAbs(grad_x, abs_grad_x);
        // imshow("Scharr边缘检测x方向", abs_grad_x);
        Scharr(gray_img, grad_y, CV_16S, 0, 1, 1, 0);
        convertScaleAbs(grad_y, abs_grad_y);
        // imshow("Scharr边缘检测y方向", abs_grad_y);
        Mat out4;
        addWeighted(abs_grad_x, 0.5, abs_grad_y, 0.5, 0, out4);
        imshow("Scharr滤波器", out4);

        waitKey(0);
    }
};

三. 实验效果

这里写图片描述

0
0
查看评论

opencv边缘检测简单例子

  • 2016-10-26 10:59
  • 465KB
  • 下载

OpenCV自学笔记3:Canny边缘检测

Canny边缘检测引言 OpenCV提供了Canny边缘检测函数,只用一行代码就能实现图像的边缘检测,看到这里你是不是很激动呢?—————————————————————————-Canny边缘检测实例# -*- coding:utf-8 -*-import cv2image = cv2.imre...
  • u010429424
  • u010429424
  • 2017-06-23 20:56
  • 824

【OpenCV】边缘检测:Sobel、拉普拉斯算子

边缘 边缘(edge)是指图像局部强度变化最显著的部分。主要存在于目标与目标、目标与背景、区域与区域(包括不同色彩)之间,是图像分割、纹理特征和形状特征等图像分析的重要基础。 图像强度的显著变化可分为: 阶跃变化函数,即图像强度在不连续处的两边的像素灰度值有着显著的差异;线条(屋顶)变化函...
  • xiaowei_cqu
  • xiaowei_cqu
  • 2012-08-04 13:41
  • 105508

Opencv学习之边缘检测方法

边缘检测的一般步骤: 1. 滤波 边缘检测的算法主要是基于图像强度的一阶和二阶导数,但导数通常对噪声很敏感,因此必须采用滤波器来改善与噪声有关的边缘检测器的性能。常见的滤波方法主要有高斯滤波,即采用离散化的高斯函数产生一组归一化的高斯核,然后基于高斯核函数对图像灰度矩阵的每一点进行加权求和...
  • qq_31531635
  • qq_31531635
  • 2017-06-17 20:22
  • 1412

OpenCV学习笔记(十三)边缘检测

边缘检测: 边缘检测算子有很多,Sobel、Laplace、Prewitt、Canny、Marr-Hildresh。 Sobel算子: Sobel算子是主要用于边缘检测的离散微分算子,它结合了高斯平滑和微分求导,用于计算图像灰度函数的近似梯度。 void Sobel(InputAr...
  • spw_1201
  • spw_1201
  • 2016-12-15 11:05
  • 1232

opencv实现边缘检测

在opencv中显示边缘检测很简单,只需调用一个cvCanny函数,其使用的是
  • zhx6044
  • zhx6044
  • 2014-09-13 22:46
  • 8674

【OpenCV学习笔记】十九、图像边缘检测

图像边缘检测 Canny边缘检测——Canny() Sobel边缘检测——Sobel() Laplacian边缘检测——Laplacian() 先上ppt: ...
  • abc8730866
  • abc8730866
  • 2017-03-18 17:35
  • 1796

opencv 3.0 边缘检测

经典的边缘检测方法是对原始图像中像素的某小邻域来构造边缘检测算子。常用的边缘检测方法有Roberts算子、Sobel算子、Prewitt算子、Scharr算子、Kirsch算子、Laplacian算子、LOG 算子、Canny算子等。   以下是opencv 边缘检测(reberts,so...
  • billbliss
  • billbliss
  • 2015-01-24 15:01
  • 781

openCV—Python(11)—— 图像边缘检测

一、函数简介1、laplacian算子函数原型:Laplacian(src, ddepth, dst=None, ksize=None, scale=None, delta=None, borderType=None)src:图像矩阵ddepth:深度类型2、Sobel算子函数原型:Sobel(sr...
  • jnulzl
  • jnulzl
  • 2015-08-18 17:27
  • 3742

Opencv图像识别从零到精通(20)---laplace LOG DOG边缘检测

经过了上一篇的简单的边缘检测,现在来看一下二阶导数的边缘检测,分别是Laplace LOG DOG,看到他们心里还是有点遗憾,要是自己能加快一点学习的步伐,在面试的时候也许就可以轻松回答了,亲爱的你们只是来的晚了2天。希望和我一样的同学,要加快脚步,认真学习了。废话不再多说,让我看看是怎么回事。 一...
  • qq_20823641
  • qq_20823641
  • 2016-08-01 16:01
  • 3691
    个人资料
    • 访问:156178次
    • 积分:3607
    • 等级:
    • 排名:第10776名
    • 原创:213篇
    • 转载:3篇
    • 译文:0篇
    • 评论:43条
    最新评论