OpenCv之Canny

目录

一、自适应阈值

二、边缘检测Canny


一、自适应阈值

引入前提:在前面的部分我们使用是全局闻值,整幅图像采用同一个数作为闻值。当时这种方法并不适应与所有情况,尤其是当同一幅图像上的不同部分的具有不同亮度时。这种情况下我们需要采用自适应闻值。此时的闻值是根据图像上的每一个小区域计算与其对应的闻值。因此在同一幅图像上的不同区域采用的是不同的闻值,从而使我们能在亮度不同的情况下得到更好的结果

案例代码如下:

python 复制代码
import cv2
import numpy as np

img = cv2.imread('6.jpg')


cv2.namedWindow('img',cv2.WINDOW_NORMAL)
cv2.resizeWindow('img',1920,1080)

# 二值化操作是对灰度图像操作,把图像转为灰度图像
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

# 自适应阈值二值化只返回一个值,即二值化后的结果
dst = cv2.adaptiveThreshold(gray,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,cv2.THRESH_BINARY_INV,6,0)

# 展示
cv2.imshow('img',np.hstack((gray,dst)))

cv2.waitKey(0)
cv2.destroyAllWindows()

二、边缘检测Canny

Canny三个主要特征:

  • 低错误率
  • 高定位性
  • 最下响应

案例代码如下:

python 复制代码
import cv2
import numpy as np

# 导入图片
img = cv2.imread('6.jpg')

# 阈值越小,细节越丰富(阈值需自己调节)
lena1 = cv2.Canny(img,100,200)
lena2 = cv2.Canny(img,64,128)

# 展示图片
cv2.imshow('lena',np.hstack((lena1,lena2)))

cv2.waitKey(0)
cv2.destroyAllWindows()

运行结果如下:

相关推荐
scilwb12 小时前
Isaac Sim机械臂教程 - 阶段1:基础环境搭建与机械臂加载
人工智能·开源
舒一笑12 小时前
TorchV企业级AI知识引擎的三大功能支柱:从构建到运营的技术解析
人工智能
掘金酱12 小时前
🎉 2025年8月金石计划开奖公示
前端·人工智能·后端
鹏多多13 小时前
纯前端人脸识别利器:face-api.js手把手深入解析教学
前端·javascript·人工智能
aneasystone本尊13 小时前
盘点 Chat2Graph 中的专家和工具
人工智能
Baihai_IDP14 小时前
AI Agents 能自己开发工具自己使用吗?一项智能体自迭代能力研究
人工智能·面试·llm
大模型真好玩15 小时前
大模型工程面试经典(七)—如何评估大模型微调效果?
人工智能·面试·deepseek
黎燃1 天前
短视频平台内容推荐算法优化:从协同过滤到多模态深度学习
人工智能
飞哥数智坊1 天前
多次尝试用 CodeBuddy 做小程序,最终我放弃了
人工智能·ai编程
后端小肥肠1 天前
别再眼馋 10w + 治愈漫画!Coze 工作流 3 分钟出成品,小白可学
人工智能·aigc·coze