溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

python中如何實(shí)現(xiàn)修改圖像分辨率大小

發(fā)布時(shí)間:2023-03-25 11:25:53 來(lái)源:億速云 閱讀:265 作者:iii 欄目:開(kāi)發(fā)技術(shù)

今天小編給大家分享一下python中如何實(shí)現(xiàn)修改圖像分辨率大小的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來(lái)了解一下吧。

python修改圖像分辨率大小

圖像分辨率指圖像中存儲(chǔ)的信息量,是每英寸圖像內(nèi)有多少個(gè)像素點(diǎn),分辨率的單位為PPI(Pixels Per Inch),通常叫做像素每英寸。圖像分辨率一般被用于ps中,用來(lái)改變圖像的清晰度。

圖像分辨率的大小會(huì)影響到我們實(shí)驗(yàn)的進(jìn)行,修改合適的分辨率可以讓實(shí)驗(yàn)完美的進(jìn)行下去。

通過(guò)python程序可以很好的調(diào)整圖像的分辨率。

# -*- codeing = utf-8 -*-
# @Time : 2022/5/1 13:23
# @Author : ning
# @File : 5.1demo.py
# @software : PyCharm
 
import matplotlib.pyplot as plt
from PIL import Image
 
 
def produceImage(file_in, width, height, file_out):
    image = Image.open(file_in)
    resized_image = image.resize((width, height), Image.ANTIALIAS)
    resized_image.save(file_out)
 
 
if __name__ == '__main__':
    file_in = '9.jpg'
    width = 256 #調(diào)整的分辨率大小
    height = 256
    file_out = 'demo9.png'
    # 分辨率
    produceImage(file_in, width, height, file_out)

python批量修改圖片分辨率

使用python代碼可以指定圖片的分辨率。注意:執(zhí)行本改代碼會(huì)用新生成的指定分辨率的圖片覆蓋掉原有的圖片。且本程序是批處理,可以直接對(duì)文件夾下所有的圖片統(tǒng)一指定分辨率。

讀者只需修改如下兩個(gè)位置的參數(shù)即可:

python中如何實(shí)現(xiàn)修改圖像分辨率大小

源碼如下:

"""
批處理文件夾train下的images和labels文件夾中的圖片,進(jìn)行重新修改尺寸操作,并替換保存。
注意是**批處理**,會(huì)把train中所有的文件夾下的所有圖片都修改分辨率。
敲黑板,劃重點(diǎn)!??!會(huì)直接把 原分辨率 的圖片替換為 指定分辨率的圖片?。?!
文件夾結(jié)構(gòu):
    PATH:'/home/stu/zy/MySwin-Unet/data/train'
    childPATH:PATH下的'/labels'
    childPATH:PATH下的'images'


"""

import cv2
import os
import sys


# PATH = r'/root/autodl-tmp/MySwin-Unet/data/' # 這個(gè)路徑只需寫(xiě)到train和val文件夾即可。文件夾下的圖片程序會(huì)自動(dòng)幫你打開(kāi)
PATH = r'/home/stu/zy/MySwin-Unet/data/train'
# 我這里是相對(duì)路徑,親測(cè)中文路徑也可以

def resizeImage(file, NoResize):
    image = cv2.imread(file, cv2.IMREAD_COLOR)

    # 如果type(image) == 'NoneType',會(huì)報(bào)錯(cuò),導(dǎo)致程序中斷,所以這里先跳過(guò)這些圖片,
    # 并記錄下來(lái),結(jié)束程序后手動(dòng)修改(刪除)

    if image is None:
        NoResize += [str(file)]
    else:
        resizeImg = cv2.resize(image, (512, 512)) # 這里改為自己想要的分辨率
        cv2.imwrite(file, resizeImg)
        cv2.waitKey(100)


def resizeAll(root):
    # 待修改文件夾
    fileList = os.listdir(root)
    # 輸出文件夾中包含的文件
    # print("修改前:"+str(fileList))
    # 得到進(jìn)程當(dāng)前工作目錄
    currentpath = os.getcwd()
    # 將當(dāng)前工作目錄修改為待修改文件夾的位置
    os.chdir(root)

    NoResize = []  # 記錄沒(méi)被修改的圖片

    for file in fileList:  # 遍歷文件夾中所有文件
        file = str(file)
        resizeImage(file, NoResize)

    print("---------------------------------------------------")

    os.chdir(currentpath)  # 改回程序運(yùn)行前的工作目錄

    sys.stdin.flush()  # 刷新

    print('沒(méi)別修改的圖片: ', NoResize)


if __name__ == "__main__":
    # 子文件夾
    for childPATH in os.listdir(PATH):
        # 子文件夾路徑
        childPATH = PATH + '/' + str(childPATH)
        # print(childPATH)
        resizeAll(childPATH)
    print('------修改圖片大小全部完成?(^_-)')

以上就是“python中如何實(shí)現(xiàn)修改圖像分辨率大小”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI