图像数据预处理——openCV

目录

灰度化

几何变换

 图像缩放

 中心裁剪

 标准化

图像增强

可视化图像


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]) // 2
    starty = (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)

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值