目录
灰度化
几何变换
图像缩放
中心裁剪
标准化
图像增强
可视化图像
import numpy as np
import pandas as pd
import json
import cv2
import os
灰度化
使用cv2读取图像时,就可以选择读取彩色图像还是灰度图像
image = cv2.imread(filename, flags)
flags:cv2.IMREAD_COLOR,cv2.IMREAD_GRAYSCALE,cv2.IMREAD_UNCHANGED
- cv2.IMREAD_COLOR:默认参数,读入一副彩色图片,忽略alpha通道,可用1作为实参替代
- cv2.IMREAD_GRAYSCALE:读入灰度图片,可用0作为实参替代
- cv2.IMREAD_UNCHANGED:顾名思义,读入完整图片,包括alpha通道,可用-1作为实参替代
单通道读取图片:
def img_processor(data_path):image_src = cv2.imread(data_path,flag = cv2.IMREAD_GRAYSCALE)
几何变换
图像缩放
image = cv2.resize( x, y )
将图像大小调整为 (256, 256)
def img_processor(data_path):image_src = cv2.imread(data_path,flag = cv2.IMREAD_GRAYSCALE)// 调整图像大小为(256,256)image_resized = cv2.resize(image_src, (256,256))
中心裁剪
image = image [y0 : y1, x0 : x1]
其中,y0,x0 是初始索引位置 ,y1,x1 是对角索引位置。
将图片中心剪裁为(224,224)的大小,返回起始索引位置和图片:
def img_processor(data_path,dst_size=(224,224):image_src = cv2.imread(data_path,flag = cv2.IMREAD_GRAYSCALE)image = cv2.resize(image_src, (256,256)) // 图像大小为(256,256)// 计算初始索引位置startx = (256,dst_size[0]) // 2starty = (256,dst_size[1]) // 2// 剪裁image = image[starty:starty+dst_size[0],startx:startx+dst_size[1]]
标准化
image = (image - mean)/std
def img_processor(data_path,dst_size=(224,224):image_src = cv2.imread(data_path,flag = cv2.IMREAD_GRAYSCALE)// 标准化,使用代码中设置的 _mean 和 _std 对图像像素进行标准化。Image_std = [0.229, 0.224, 0.225]Image_mean = [0.485, 0.456, 0.406]_std = np.array(Image_std).reshape((1,1,3))_mean = np.array(Image_mean).reshape((1,1,3))image_standar = (image_src-_mean) / _std
图像增强
cv2.convertScaleAbs
是OpenCV中用于对图像进行线性缩放和偏移的函数 。
dst = cv2.convertScaleAbs(src, alpha=alpha, beta=beta)
#输出图像与输入图像具有相同的大小和类型。
alpha
用于调整对比度,beta
用于调整亮度。cv2.convertScaleAbs
函数用于对图像进行缩放和偏移,从而实现对比度增强和亮度调整
def enhance_contrast_brightness(image, alpha=1.0, beta=0):# 对比度增强和亮度调整enhanced_image = cv2.convertScaleAbs(image, alpha=alpha, beta=beta)return enhanced_image
可视化图像
# 显示原始图像和增强后的图像
cv2.imshow("Image", image)