opencv Canny边缘检测

ops/2024/12/19 2:08:32/



canny阈值越高,检测到的边缘数量越少

# 导入OpenCV库,用于图像处理  
import cv2  
import numpy as np  
# 从matplotlib库中导入pyplot模块,用于绘制图像  
from matplotlib import pyplot as plt  # 创建一个名为'window'的窗口,窗口大小自动调整  
cv2.namedWindow('window', cv2.WINDOW_AUTOSIZE)  # cv2.WINDOW_AUTOSIZE: 窗口大小自动调整,不允许用户改变窗口大小  # 使用OpenCV的imread函数读取名为"mao.jpg"的图片,参数1表示读取彩色图像  
cat = cv2.imread("mao.jpg", 0)  # cat变量存储读取的图像数据,OpenCV默认以BGR格式读取  # 在名为'window'的窗口中显示图像  
cv2.imshow('window', cat)  sobelx = cv2.Sobel(cat,cv2.CV_64F,1,0,ksize=3)  
sobely = cv2.Sobel(cat,cv2.CV_64F,0,1,ksize=3)  
sobelx = cv2.convertScaleAbs(sobelx)  
sobely = cv2.convertScaleAbs(sobely)  
sobelxy = cv2.addWeighted(sobelx, 0.5, sobely, 0.5, 0)  scharrx = cv2.Scharr(cat,cv2.CV_64F,1,0)  
scharry = cv2.Scharr(cat,cv2.CV_64F,0,1)  
scharrx = cv2.convertScaleAbs(scharrx)  ![](https://gitee.com/lindongcms/blog/raw/master/img/202412131548505.png)
scharry = cv2.convertScaleAbs(scharry)  
scharrxy = cv2.addWeighted(sobelxy, 0.5, sobely, 0.5,0)  laplacian = cv2.Laplacian(cat,cv2.CV_64F)  
laplacian = cv2.convertScaleAbs(laplacian)  
res = np.hstack((sobelxy,scharrxy,laplacian))  
cv2.imshow('window1', res)  res1 = cv2.Canny(cat,80,150)  
res2 = cv2.Canny(cat,50,100)  
res = np.hstack((res1,res2))  
cv2.imshow('window3', res)  
key = cv2.waitKey(0)  # 检查按下的键是否是'q',如果是则销毁所有窗口  
if key & 0xFF == ord('q'):  # 0xFF是掩码,用于确保只检查最低8位  print("准备销毁窗口")  cv2.destroyAllWindows()

检测效果图


http://www.ppmy.cn/ops/143047.html

相关文章

Web 毕设篇-适合小白、初级入门练手的 Spring Boot Web 毕业设计项目:教室信息管理系统(前后端源码 + 数据库 sql 脚本)

🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 1.0 项目介绍 开发工具:IDEA、VScode 服务器:Tomcat, JDK 17 项目构建:maven 数据库:mysql 8.0 系统用户前台和管理…

Linux应用开发————mysql数据库表

mysql数据库表操作 查看表的结构 mysql> desc / describe 表名; 或者: mysql> show create table 表名; 常见数据库引擎: innodb, myISAM... 删除表 mysql> drop tabl…

UOS AI 2.0 发布,开启原生 AIOS 时代!

PC 终端作为最主流最高频的生产力工具,其操作系统承载着用户的大量场景、数据以及技能。随着生成式人工智能浪潮的来临,新的技术架构、交互模式和新的生态,都需要操作系统承担起更多责任,即需要新一代的操作系统产品 ——AIOS&…

纯CSS实现文本或表格特效(连续滚动与首尾相连)

纯CSS实现文本连续向左滚动首尾相连 1.效果图&#xff1a; 2.实现代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"widthdevice-width, init…

中阳科技:量化交易模型的探索与发展前景

在数字化浪潮的推动下&#xff0c;金融市场迎来了一场技术革命。量化交易作为融合金融与科技的产物&#xff0c;正在全球范围内深刻改变交易方式和市场格局。中阳科技通过不断优化量化模型和算法技术&#xff0c;正在引领智能化交易的新方向。 量化交易的核心概念 量化交易是…

关于linux的ld.so.conf.d

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的&#xff0c;可以在任何平台上使用。 源码指引&#xff1a;github源…

linux网络编程 | c | 多进程并发服务器实现

多进程并发服务器 基于该视频完成 11-多进程并发服务器思路分析_哔哩哔哩_bilibili 通过的是非阻塞忙轮询的方式实现的 和阻塞等待的区别就是&#xff0c;阻塞是真的阻塞了&#xff0c;而这个方式是一直在问有没有请求有没有请求 文章目录 多进程并发服务器1.核心思路&…

Git Push冲突怎么办

发生情况 在团队开发时&#xff0c;都没有pull&#xff0c;直接在同一个文件进行修改并push&#xff0c;后push的那个人就会出现冲突的情况 解决方法 在冲突后&#xff0c;首先merge&#xff0c;然后可以选择Accpet theirs, Accept yours, Merge Accpet theirs 去除自己的代…