OpenCV图像边缘检测(Laplace算法)
一、Laplace算法简介
二阶微分在亮的一边是负的,在暗的一边是正的。常数部分为零。可以用来确定边的准确位置,以及像素在亮的一侧还是暗的一侧。
拉普拉斯算子是最简单的各向同性微分算子,具有旋转不变性。一个二维图像函数 的拉普拉斯变换是各向同性的二阶导数,定义为:
其中:
由于 Laplacian使用了图像梯度,它内部的代码其实是调用了 Sobel 算子的。同时,可以让一幅图像减去它的Laplacian增强其对比对。
二、OpenCV中Laplacian函数解析
void Laplacian(InputArray src,OutputArray dst, int ddepth,int ksize=1, double scale=1, double delta=0, intborderType=BORDER_DEFAULT );
第一个参数,InputArray类型的image,输入图像,即源图像,需为单通道8位图像。
第二个参数,OutputArray类型的edges,输出的边缘图,需要和源图片有一样的尺寸和通道数。
第三个参数,int类型的ddept,目标图像的深度。
第四个参数,int类型的ksize,用于计算二阶导数的滤波器的孔径尺寸,大小必须为正奇数,且有默认值1。
第五个参数,double类型的scale,计算拉普拉斯值的时候可选的比例因子,有默认值1。
第六个参数,double类型的delta,表示在结果存入目标图(dst)之前可选的delta值,有默认值0。
第七个参数, int类型的borderType,边界模式,默认值为BORDER_DEFAULT。
三、实例
1、代码
#include <opencv2/opencv.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<opencv2/imgproc/imgproc.hpp> using namespace cv;int main()
{//【0】变量的定义 Mat src, src_gray, dst, abs_dst;//【1】载入原始图 src = imread("1.jpg"); //【2】显示原始图 imshow("【原始图】图像Laplace变换", src);//【3】使用高斯滤波消除噪声 GaussianBlur(src, src, Size(3, 3), 0, 0, BORDER_DEFAULT);//【4】转换为灰度图 cvtColor(src, src_gray, CV_RGB2GRAY);//【5】使用Laplace函数 Laplacian(src_gray, dst, CV_16S, 3, 1, 0, BORDER_DEFAULT);//【6】计算绝对值,并将结果转换成8位 convertScaleAbs(dst, abs_dst);//【7】显示效果图 imshow("【效果图】图像Laplace变换", abs_dst);waitKey(0);return 0;
}
2、运行结果
(1)原图像
(2)Laplace转换图像
OpenCV图像边缘检测(Laplace算法)相关推荐
- opencv 图像边缘检测 Canny边缘检测算法使用
图解边缘检测 opencv 应用Canny算法进行边缘检测 import cv2 as cv import numpy as npimg = cv.imread('baby_g.jpg', 0) # ...
- OpenCV 图像清晰度评价算法(相机自动对焦)
相机的自动对焦要求相机根据拍摄环境和场景的变化,通过相机内部的微型驱动马达,自动调节相机镜头和CCD之间的距离,保证像平面正好投影到CCD的成像表面上.这时候物体的成像比较清晰,图像细节信息丰富. 相 ...
- python opencv图像加密解密算法优化
今天给大家带来的是图像加密解密算法的优化 这是我的设计思路 import cv2 import numpy as np aaa=cv2.imread("xxx.jpg",0) // ...
- (自己编写函数)Python + Opencv 图像边缘检测(模糊算法【老师给的ppt中原理是这样的,但是还有很多不明白,有很多参数老师没说怎么算,只说了每张图片不一样】)
实验原理 1.首先,用重心法模糊推理图像中任意一像素点的边缘隶属方向,取其最大隶属度的方向为边缘隶属方向. 2.然后,在边缘隶属方向上根据像素点附近灰度分布的特点模糊推理该点的边缘隶属度,进而实现边缘 ...
- opencv图像灰度重心算法
原文:http://blog.csdn.net/moses1213/article/details/44679603 导师交给的项目,其中一步就是求光斑的重心,网上有很多关于重心的代码,大体是利用cv ...
- java边缘检测算子代码_图像边缘检测(Canny 算法)的Java实现
快速排序 一. 算法描述 快速排序是对冒泡排序的一种改进.在冒泡排序中,记录每次都是与相邻位置上的数据作比较,因此每次只能移动一个位置.而在快速排序中,记录的比较和移动都是从两端向中间进行的. 其主要 ...
- C#联合Opencv 图像边缘检测
Sobel算子 提取X方向(水平方向)的边缘. 提取Y方向(垂直方向)的边缘. Sobel算子的优点是方法简单.处理速度快,并且所得的边缘光滑.连续. 其缺点是边缘较粗,由于处理时需作两值化处理,故得 ...
- OpenCV图像颜色反转算法
前言 图像颜色的反转,比较简单的思路就是使用255减去当前值,从而得到反转后的图像.原始图片: 1.灰度图像的颜色反转 import cv2 import numpy as np# 灰度 0-255 ...
- OpenCV环境下Laplace(拉普拉斯)和Roberts基本边缘检测算子的实现代码
图像处理开发需求.图像处理接私活挣零花钱,请加微信/QQ 2487872782 图像处理开发资料.图像处理技术交流请加QQ群,群号 271891601 拉普拉斯算子是最简单的各向同性二阶微分算子,具有 ...
最新文章
- 数据库编程入门培训(二)
- 批量修改nginx配置文件
- 初等代数(3):代数方程、指数与对数、复数
- Delphi文件操作函数
- 图数据库Neo4j的介绍与使用
- 都在说TDD开发,那到底TDD是什么?
- Eclipse里做JBPM工作流gpd.xml中文乱码问题解决(包括控制台乱码解决)
- 【POJ - 1947】Rebuilding Roads (树形dp,背包问题,树形背包dp)
- 容器编排技术 -- 了解Kubernetes对象
- TensorFlow 教程 --教程--2.7字词的向量表示
- 扫地机器人湿地_黑五好价 美亚直邮 iRobot Braava 380t 拖地机器人
- 用ODBC方式操作dbf文件
- 线性反馈移位寄存器的输出(未解出)
- 易康(eCognition)对象几何特征--1:几何(Geometry)_范围(Extent)
- 保存下载图片(taro h5)
- SAP携手泉州市政府共建SAP海丝工业互联网创新中心
- 标题怎样选择适合自己的导图结构
- wpsppt页面卷曲在哪里_2013版ppt怎么制作页面卷曲动画效果_博客
- IOS逆向笔记之HOOK实现(非越狱)
- 问题 L: 分糖果(candy)
热门文章
- 7-19 循环-分数矩阵 (50 分) 我们定义如下矩阵: 1/1 1/2 1/3 1/2 1/1 1/2 1/3 1/2 1/1 矩阵对角线上的元素始终是1/1
- 非常使用的网易云打卡系统, 网易云音乐打卡,网易云音乐听歌300首, 网易云打卡一键听300首歌
- 从心灰意冷到自学Java3个月顺利拿到offer,多亏这份文档
- 发蓝色磷光的铱配合物(ppy)2Ir(POP)PF6-齐岳试剂
- python进程管理工具 ci_推荐 10 个好用的 CI/CD 工具
- CountDownLatch解析及应用场景
- 软件Beta测试悄悄变味
- 天猫维护品牌自身形象,大量续签考核不达标账户将被撤出
- 英雄萨姆2 超完整流程攻略
- 【转】对比App设计和Web设计:App设计和Web设计相互借鉴