计算机视觉第二课:3 个核心操作(灰度图 + 模糊 + 边缘检测)

一、实践效果

将图片test.jpg放在桌面,编写代码 cv_lesson2.py

复制代码
import cv2
import numpy as np

#读取图片
img = cv2.imread("test.jpg")

# 功能1: 彩色图-》灰度图(黑白)
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
cv2.imshow("gray",gray)
#功能2: 高斯模糊(磨皮/去噪)
blur = cv2.GaussionBlur(gray,(9,9),0)
cv2.imshow("blur",blur)
#功能3:canny边缘检测(找轮廓)
canny = cv2.Canny(blur,50,150) #边缘检测
cv2.imshow("canny",canny)
#等待案件,关闭所有窗口
cv2.waitkay(0)
cv2.destroyAllWindows()

1. 灰度图

cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

  • 彩色图有 3 个颜色通道,灰度图只有 1 个通道,计算更快
  • 几乎所有 CV 识别任务,第一步都是转灰度图

2. 高斯模糊

cv2.GaussianBlur(gray, (9,9), 0)

  • (9,9):模糊核大小,数字越大模糊越强(必须是奇数:3,5,7,9...)
  • 作用:去掉图片杂点,让边缘检测更精准

3. Canny 边缘检测

cv2.Canny(blur, 50, 150)

  • CV 最经典的边缘检测算法
  • 能找出图片里所有物体的轮廓线
  • 后面做人脸、车牌、物体检测全靠它
  • (9,9) 改成 (3,3) → 模糊变弱
  • (9,9) 改成 (15,15) → 非常模糊
  • 50,150 改成 100,200 → 边缘变少

二、原理讲解

1. 灰度化原理

把RGB三种颜色,加权平均成一个亮度值,变成黑白

  • 彩色图 = 3 层数据:R (红)、G (绿)、B (蓝)
  • 灰度图 = 1 层数据:亮度
  • 公式(OpenCV 内部自动算):灰度值 = 0.299×R + 0.587×G + 0.114×B

为什么要这么算?

人眼对绿色最敏感,对蓝色最不敏感,所以加权后更接近人眼看到的黑白效果。

作用:

减少计算量、去掉颜色干扰、让后续算法更快更准。

2. 模糊化(高斯模糊)原理

让每个像素,都和周围像素 "平均一下",画面就变柔变模糊。

通俗比喻:

就像你给照片抹了一层雾

详细原理:

  1. 用一个小窗口(比如 3×3、9×9)在图片上滑动
  2. 窗口中心的像素 = 窗口内所有像素的加权平均值
  3. 高斯模糊 = 按正态分布加权,中间权重高,周围权重低

作用:

去噪点、让图像更平滑、防止边缘检测抓到杂线。

  1. 边缘检测(Canny)原理

找到像素值 "突然变化" 的地方,那就是边缘!

通俗比喻:

想象你在走路:

  • 平地走 = 像素变化小 = 不是边缘
  • 突然下台阶 = 像素变化大 = 边缘!

详细原理(OpenCV 内部 4 步):

  • 先高斯模糊去噪
  • 计算每个点的像素梯度(变化大小)
  • 保留变化最大的点
  • 双阈值筛选,留下真正的边缘

作用:

提取物体轮廓,是人脸识别、物体检测的基础!

总结:

  • 灰度化:去掉颜色,只留亮度
  • 模糊化:像素周围平均,去噪柔化
  • 边缘检测:找像素突变的地方,画轮廓线
相关推荐
霍格沃兹测试开发学社测试人社区6 小时前
为企业提供专业、灵活、高效的一体化测试支持
人工智能
xixixi777776 小时前
产业全景解读:太空算力、国产芯、国产大模型、6G 空天地、AI 可信身份、后量子安全多线全面突破
人工智能·安全·ai·大模型·数据中心·通信·运营商
InfiniSynapse6 小时前
InfiniSynapse × CSDN 首届 Vibe Coding 泛数据分析应用开发大赛正式启动报名!
人工智能·数据挖掘·数据分析·创业创新·个人开发·ai编程·程序员创富
m0_466525296 小时前
新品发布 | 绿盟安全智算一体机,构建“算力、调度、安全“深度融合的AI基础设施
人工智能·安全
小顿的企业观察7 小时前
中企出海战略规划,正在从“走出去”转向“走进去”
大数据·运维·人工智能·产品运营·制造
福客AI智能客服7 小时前
AI客服Agent开始参与售后判断,企业正在建立更加稳健的服务决策机制
人工智能
IT_陈寒7 小时前
SpringBoot自动配置不是你以为的那样的智能
前端·人工智能·后端
麻雀飞吧7 小时前
2026年AI量化开发,先跑通小流程再加复杂功能
人工智能·python
yangmu32037 小时前
告别“玩具AI”:如何搭建真正落地的“强工作流”AI系统
人工智能
2603_954708317 小时前
全维度容错设计,打造微电网安全运行屏障
服务器·网络·数据库·人工智能·分布式·安全