openCV——图片处理细节(二)

本文介绍了一种图片批量归一化的实现方法,通过Python及其相关库如NumPy、PIL等,实现了对指定文件夹内所有图片进行线性归一化处理,并将处理后的图片保存到新的文件夹中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.图片批量归一化

import numpy as np
import cv2
import os
import SimpleITK as sitk
from PIL import Image

# 原文件夹下的所有图片
file_root = r'F:\mydata_YJN\Data\FEN JI\fenji_yuantu\yantu_val\level_4'
file_list = os.listdir(file_root)
# print(file_list)

# 保存图片的文件夹名称
save_out = r"F:\mydata_YJN\Data\FEN JI\fenji_yuantu\guiyi_val\LV4"



def normalize(arr):
    """
    Linear normalization
    http://en.wikipedia.org/wiki/Normalization_%28image_processing%29
    """
    arr = arr.astype('float')
    # Do not touch the alpha channel
    for i in range(3):
        minval = arr[..., i].min()
        maxval = arr[..., i].max()
        if minval != maxval:
            arr[..., i] -= minval
            arr[..., i] *= (255.0 / (maxval - minval))
    return arr



def demo_normalize(img_path,save_path):
    img = Image.open(img_path).convert('RGB')
    arr = np.array(img)
    new_img = Image.fromarray(normalize(arr).astype('uint8'), 'RGB')
    new_img.save(save_path)




for img_name in file_list:
    # print(img_name)
    if img_name.endswith('.jpg'):
        # print(img_name)
        # print("+++++++++++++++")
        img_path = os.path.join(file_root , img_name)
        save_path = os.path.join(save_out, img_name)
        print(img_path)
        print(save_path)

        # img = cv2.imread(img_path, 0)
        # # create a CLAHE object
        # clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8, 8))
        # cl1 = clahe.apply(img)
        # cv2.imshow('cl1.jpg', cl1)
        # cv2.waitKey(0)
        # cv2.imwrite(save_path, cl1)
        demo_normalize(img_path,save_path)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值