亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何標準化圖像中的像素值并保存

如何標準化圖像中的像素值并保存

倚天杖 2023-02-22 15:40:11
我正在嘗試規范化我的數據以準備將其作為此模型的輸入。我嘗試按照本指南進行操作,但一直遇到問題。首先,我的最小值和最大值不是從 0 和 255 開始的,最終結果也沒有在 0 和 1 之間歸一化。這是我的功能def process_image(image_path):    image = Image.open(image_path)    new_image = image.resize((224,224))        pixels = asarray(new_image)    # confirm pixel range is 0-255    print('Data Type: %s' % pixels.dtype)    print('Min: %.3f, Max: %.3f' % (pixels.min(), pixels.max()))    # convert from integers to floats    pixels = pixels.astype('float32')    # normalize to the range 0-1    pixels /= 255.0    # confirm the normalization    print('Min: %.3f, Max: %.3f' % (pixels.min(), pixels.max()))    new_image.save("result.jpg")        return new_image這是我的結果輸出Data Type: uint8Min: 8.000, Max: 216.000Min: 0.031, Max: 0.847任何想法為什么?而且,我怎樣才能保存具有這些標準化結果的圖像。現在編寫代碼時,像素不會更改,因為我只是從 new_image 創建像素的副本。感謝您提供的任何幫助。
查看完整描述

1 回答

?
揚帆大魚

TA貢獻1799條經驗 獲得超9個贊

您可以做的是計算數據集的實際最小值和最大值,然后再進行您自己的 minmax 歸一化。


這可能是這樣的:


import sys

from PIL import Image

import numpy as np


image_paths = ['image_path1.jpg', 'image_path2.jpg', 'image_path3.jpg']

min = sys.maxsize

max = -sys.maxsize


for image_path in image_paths:

    image = Image.open(image_path)

    np_image = np.asarray(image)

    if min > np_image.min()

        min = np_image.min()

    if max < np_image.max()

        max = np_image.max()

這將為您提供變量 min 和 max,您現在可以使用它們在 0 和 1 之間進行歸一化,而不是之前的 /= 255!


    ...

    pixels -= min

    pixels /= (max - min)

    ...

讓我知道是否有幫助!


查看完整回答
反對 回復 2023-02-22
  • 1 回答
  • 0 關注
  • 130 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號