当前位置:网站首页>opencv学习笔记五——梯度计算/边缘检测
opencv学习笔记五——梯度计算/边缘检测
2022-07-07 05:19:00 【我是一个小稻米】
要获取轮廓,可对一张图像做先膨胀后腐蚀的操作,然后膨胀后的结果减去腐蚀的结果。
1. Sobel
算子
dst = cv2.Sobel(src, ddepth, dx, dy, ksize)
ddepth
:图像的深度dx
核dy
分别表示水平和垂直方向ksize
是Sobel
算子大小
image1 = cv2.imread('./ro.png')
plt.imshow(image1);
image1 = cv2.imread('./ro.png')
plt.imshow(image1);
image2 = cv2.Sobel(image1, cv2.CV_64F, 1, 0, ksize=3)
plt.imshow(image2);
白到黑的卷积计算是正数,黑到白的卷积计算就是负值了,所有的负数会被截断为0
,所以要取绝对值
计算x
方向梯度
image2 = cv2.Sobel(image1, cv2.CV_64F, 1, 0, ksize=3)
image2 = cv2.convertScaleAbs(image2)
plt.imshow(image2);
计算x
方向梯度
image3 = cv2.Sobel(image1, cv2.CV_64F, 0, 1, ksize=3)
image3 = cv2.convertScaleAbs(image3)
plt.imshow(image3);
获得图像的轮廓
image4 = cv2.addWeighted(image2, 0.5, image3, 0.5, 0)
plt.imshow(image4);
换一张图试试
import cv2
import matplotlib.pyplot as plt
image = cv2.imread('image.png')
image2 = cv2.Sobel(image, cv2.CV_64F, 1, 0, ksize=3)
image2 = cv2.convertScaleAbs(image2)
image3 = cv2.Sobel(image, cv2.CV_64F, 0, 1, ksize=3)
image3 = cv2.convertScaleAbs(image3)
image4 = cv2.addWeighted(image2, 0.5, image3, 0.5, 0)
image4 = cv2.cvtColor(image4, cv2.COLOR_BGR2RGB)
plt.imshow(image4);
2. Scharr
算子
用法相同,只是计算的值会比较大,会更敏感些
3. laplacian
算子
边栏推荐
- 快解析内网穿透为文档加密行业保驾护航
- JS复制图片到剪切板 读取剪切板
- 通俗易懂单点登录SSO
- Blob 对象介绍
- Réplication de vulnérabilité - désrialisation fastjson
- Who has docker to install MySQL locally?
- It took "7" years to build the robot framework into a micro service
- Recursive method constructs binary tree from middle order and post order traversal sequence
- 云原生存储解决方案Rook-Ceph与Rainbond结合的实践
- Es FAQ summary
猜你喜欢
柯基数据通过Rainbond完成云原生改造,实现离线持续交付客户
机器人教育在动手实践中的真理
通俗易懂单点登录SSO
eBPF Cilium实战(2) - 底层网络可观测性
提高企业产品交付效率系列(1)—— 企业应用一键安装和升级
JS cross browser parsing XML application
【数字IC验证快速入门】11、Verilog TestBench(VTB)入门
【数字IC验证快速入门】14、SystemVerilog学习之基本语法1(数组、队列、结构体、枚举、字符串...内含实践练习)
Niu Mei's mathematical problem --- combinatorial number
The largest 3 same digits in the string of leetcode simple question
随机推荐
LeetCode简单题之找到一个数字的 K 美丽值
解析创新教育体系中的创客教育
在Rainbond中实现数据库结构自动化升级
Rainbond结合NeuVector实践容器安全管理
LeetCode中等题之我的日程安排表 I
Recursive construction of maximum binary tree
JS复制图片到剪切板 读取剪切板
Blob 对象介绍
LeetCode简单题之字符串中最大的 3 位相同数字
Search for an element in a binary search tree (BST)
UnityHub破解&Unity破解
通俗易懂单点登录SSO
【踩坑系列】uniapp之h5 跨域的问题
【數字IC驗證快速入門】15、SystemVerilog學習之基本語法2(操作符、類型轉換、循環、Task/Function...內含實踐練習)
QT learning 26 integrated example of layout management
Call pytorch API to complete linear regression
Zcmu--1396: queue problem (2)
Lattice coloring - matrix fast power optimized shape pressure DP
【数字IC验证快速入门】13、SystemVerilog interface 和 program 学习
OpenVSCode云端IDE加入Rainbond一体化开发体系