深度学习03-(图像梯度处理、图像轮廓、图像预处理在AI中的应用)

2023-06-09,,

深度学习03-计算机视觉基本理论2

深度学习03-(计算机视觉基本理论2)
图像梯度处理
什么是图像梯度
模板运算
均值滤波
高斯滤波
中值滤波
边沿检测
锐化
图像轮廓
什么是图像轮廓
查找和绘制轮廓
轮廓拟合
矩形包围框
最小包围圆形
最优拟合椭圆
逼近多边形
综合案例
图像预处理在AI中的应用
图像数据增强
纯图像技术的缺陷

深度学习03-(计算机视觉基本理论2)

图像梯度处理

什么是图像梯度

模板运算

均值滤波

高斯滤波

中值滤波

边沿检测

锐化

图像轮廓

什么是图像轮廓

查找和绘制轮廓

轮廓拟合

矩形包围框

最小包围圆形

最优拟合椭圆

逼近多边形

综合案例

# 图像校正示例
import cv2
import numpy as np im = cv2.imread("../data/paper.jpg")
gray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)
cv2.imshow('im', im) # 模糊
blurred = cv2.GaussianBlur(gray, (5, 5), 0)
# 膨胀
dilate = cv2.dilate(blurred,
cv2.getStructuringElement(cv2.MORPH_RECT, (3, 3))) # 根据函数返回kernel
# 检测边沿
edged = cv2.Canny(dilate, # 原始图像
30, 120, # 滞后阈值、模糊度
3) # 孔径大小
# cv2.imshow("edged", edged) # 轮廓检测
cnts = cv2.findContours(edged.copy(),
cv2.RETR_EXTERNAL, # 只检测外轮廓
cv2.CHAIN_APPROX_SIMPLE) # 只保留该方向的终点坐标
cnts = cnts[1]
docCnt = None # 绘制轮廓
im_cnt = cv2.drawContours(im, # 绘制图像
cnts, # 轮廓点列表
-1, # 绘制全部轮廓
(0, 0, 255), # 轮廓颜色:红色
2) # 轮廓粗细
cv2.imshow("im_cnt", im_cnt) # 计算轮廓面积,并排序
if len(cnts) > 0:
cnts = sorted(cnts, # 数据
key=cv2.contourArea, # 排序依据,根据contourArea函数结果排序
reverse=True)
for c in cnts:
peri = cv2.arcLength(c, True) # 计算轮廓周长
approx = cv2.approxPolyDP(c, 0.02 * peri, True) # 轮廓多边形拟合
# 轮廓为4个点表示找到纸张
if len(approx) == 4:
docCnt = approx
break print(docCnt) # 用圆圈标记处角点
points = []
for peak in docCnt:
peak = peak[0]
# 绘制圆
cv2.circle(im, # 绘制图像
tuple(peak), 10, # 圆心、半径
(0, 0, 255), 2) # 颜色、粗细
points.append(peak) # 添加到列表
print(points)
cv2.imshow("im_point", im) # 校正
src = np.float32([points[0], points[1], points[2], points[3]]) # 原来逆时针方向四个点
dst = np.float32([[0, 0], [0, 488], [337, 488], [337, 0]]) # 对应变换后逆时针方向四个点
m = cv2.getPerspectiveTransform(src, dst) # 生成透视变换矩阵
result = cv2.warpPerspective(gray.copy(), m, (337, 488)) # 透视变换
cv2.imshow("result", result) # 显示透视变换结果 cv2.waitKey()
cv2.destroyAllWindows()

图像预处理在AI中的应用

图像数据增强

纯图像技术的缺陷

深度学习03-(图像梯度处理、图像轮廓、图像预处理在AI中的应用)的相关教程结束。

《深度学习03-(图像梯度处理、图像轮廓、图像预处理在AI中的应用).doc》

下载本文的Word格式文档,以方便收藏与打印。