import cv2 import numpy as np """功能一:""" #1图像转换为灰度图像 def grayscale(image): return cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) #1垂直镜像 def mirror_vertical(image): vertical = cv2.flip(image,0,dst=None) return vertical #1图像放缩(!) def change_size(image): change_image = cv2.resize(image, (256, 256)) return change_image #1旋转画布 def rotate(image): rows, cols, depth = image.shape rotation = cv2.getRotationMatrix2D((cols / 2, rows / 2), 90, 1) return rotation #1水平镜像 def mirror_horizontal(image): horizontal = cv2.flip(image,1,dst=None) return horizontal #1保持横纵比例 def keep_shape(image): # 获取图像的高度和宽度 height, width = image.shape[:2] # 计算裁剪区域crop target_aspect_ratio = 16 / 9 if width / height > target_aspect_ratio: new_width = int(height * target_aspect_ratio) offset = (width - new_width) // 2 crop = image[:, offset:offset + new_width] else: new_height = int(width / target_aspect_ratio) offset = (height - new_height) // 2 crop = image[offset:offset + new_height, :] return crop #1还原原始图像 """功能二""" #2高斯滤波模糊去噪 def apply_blur(image): blurred = cv2.GaussianBlur(image, (5, 5), 0) return blurred #2肤色处理 def skin(image): # 将图像从BGR转换到HSV hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV) # 定义肤色的HSV范围 lower_skin = np.array([0, 20, 70], dtype=np.uint8) upper_skin = np.array([20, 255, 255], dtype=np.uint8) # 创建掩码 mask = cv2.inRange(hsv_image, lower_skin, upper_skin) # 应用掩码到原始图像 skin_image = cv2.bitwise_and(image, image, mask=mask) return skin_image #2腐蚀 def center_erosion(image): erode = cv2.imread(image, cv2.IMREAD_UNCHANGED) # 使用一个5x5的交叉型结构元(核心在几何中心)对二值图片src进行腐蚀 kernel = cv2.getStructuringElement(cv2.MORPH_CROSS, (5, 5)); erosion = cv2.erode(erode,kernel) return erosion """功能三""" #边缘检测 def detect_edges(image): """使用Canny边缘检测算法检测图像的边缘""" edges = cv2.Canny(image, 100, 200) return edges # 更多自定义处理方法... #识别边缘