最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python保存圖片時(shí)如何和原圖大小一致

 更新時(shí)間:2022年11月29日 10:21:48   作者:噸噸不打野  
這篇文章主要介紹了python保存圖片時(shí)如何和原圖大小一致問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

python保存圖片時(shí)和原圖大小一致

之前遇到過(guò)一次這個(gè)問(wèn)題,當(dāng)時(shí)解決了但是忘了記錄,這里再記錄一次好了。

1. matplotlib系列的

整體代碼如下:

import cv2
import matplotlib.pyplot as plt  

name="1-1.png"
path="crop/"+name
src = cv2.imread(path)
img = cv2.cvtColor(src, cv2.COLOR_BGR2RGB)  
# Opencv和matplotlib讀取圖片的渠道不同,需要轉(zhuǎn)換
# cv2.imshow("original image", src)
# 獲取圖像的高度和寬度
plt.savefig('my_fig.png', dpi=my_dpi)
plt.imshow(img)

IMG = cv2.bitwise_not(img)
# 進(jìn)行反色操作
# cv2.imshow("bitwise image", img)
mydpi=96
plt.figure(figsize=(Width/mydpi,Height/mydpi),dpi=mydpi)
# figsize中的單位是inches,重點(diǎn)解釋一下這個(gè)figsize參數(shù),先寫(xiě)寬度,再高度
"""
figsize : (float, float), optional, default: None width, height in inches. If not provided, defaults to:rc:`figure.figsize` = ``[6.4, 4.8]``
"""
plt.imshow(IMG)
plt.axis('off')
# 去掉坐標(biāo)軸

# 保存
plt.savefig("processcrop/"+name,dpi=mydpi)

但是不知道為什么還是會(huì)有白邊。。。

注意:

  • 如果是在jupyter lab中,plt.axis('off')就不會(huì)有問(wèn)題,但是在jupyter notebook中,就會(huì)報(bào)錯(cuò)。

jupyter lab中:


在這里插入圖片描述

jupyter notebook中,再次恢復(fù)環(huán)境竟然好了,之前的報(bào)錯(cuò)信息大概就是plt.axis("off")這個(gè)函數(shù)不接受bool類(lèi)型的值

2. opencv系列的

opencv默認(rèn)保存就是和原圖一樣的大小

name="1-1.png"
path="crop/"+name
src = cv2.imread(path)

plt.imshow(src[:, :, ::-1])
plt.axis('off')

img = cv2.bitwise_not(src)
cv2.imwrite("processcrop/"+name,img)

原圖:


在這里插入圖片描述

保存后的圖:


在這里插入圖片描述

參考——stack overflow的回答:Specifying and saving a figure with exact size in pixels

plt.figure(figsize=(800/my_dpi, 800/my_dpi), dpi=my_dpi)
# 假設(shè)有一個(gè)800×800pix的圖,要顯示在本機(jī)電腦dpi為96的電腦上,則要保持原圖大小顯示就可以使用上述代碼。
plt.savefig('my_fig.png', dpi=my_dpi)
# 保存成相同分辨率,使用上述代碼

# 如果想把分辨率提高10倍,則可以進(jìn)行如下方式,則就保存了一個(gè)8000X8000的高清圖
plt.savefig('my_fig.png', dpi=my_dpi * 10)

另外根據(jù)另一個(gè)回答:How to get matplotlib figure size

import matplotlib.plt
fig = plt.figure()
# 在構(gòu)建畫(huà)布的時(shí)候就已經(jīng)有一個(gè)默認(rèn)的分辨率了
size = fig.get_size_inches()*fig.dpi # size in pixels

python批量處理圖片統(tǒng)一尺寸

方法一:

import numpy as np
import os
import cv2

# 設(shè)置圖片路徑,該路徑下包含了14張jpg格式的照片,名字依次為0.jpg, 1.jpg, 2.jpg,...,14.jpg
DATADIR="D:\Code\ToolBox"
#設(shè)置目標(biāo)像素大小,此處設(shè)為300'''
IMG_SIZE=300
#使用os.path模塊的join方法生成路徑'''
path=os.path.join(DATADIR)?
#使用os.listdir(path)函數(shù),返回path路徑下所有文件的名字,以及文件夾的名字,
#例如,執(zhí)行下行代碼后,img_list是一個(gè)list,值為['0.jpg','1.jpg','10.jpg','11.jpg','12.jpg','13.jpg','14.jpg',
#'2.jpg','3.jpg','4.jg', '5.jpg', '6.jpg', '7.jpg',?
#'8.jpg', '9.jpg'],注意這個(gè)順序并沒(méi)有按照從小到大的順序排列'''
img_list=os.listdir(path)
ind=0
for i in img_list:
?? ?#調(diào)用cv2.imread讀入圖片,讀入格式為IMREAD_COLOR'''
? ? img_array=cv2.imread(os.path.join(path,i),cv2.IMREAD_COLOR)
? ? #'''調(diào)用cv2.resize函數(shù)resize圖片'''
? ? new_array=cv2.resize(img_array,(IMG_SIZE,IMG_SIZE))
? ? img_name=str(ind)+'.jpg'
? ? #'''生成圖片存儲(chǔ)的目標(biāo)路徑'''
? ? save_path='D:\\Code\\resized\\'+str(ind)+'.jpg'
? ? ind=ind+1
? ? #'''調(diào)用cv.2的imwrite函數(shù)保存圖片'''
? ? cv2.imwrite(save_path,new_array)

方法二:

#提取目錄下所有圖片,更改尺寸后保存到另一目錄
from PIL import Image
import os.path
import glob
def convertjpg(jpgfile,outdir,width=128,height=128):
? ? img=Image.open(jpgfile)
? ? try:
? ? ? ? new_img=img.resize((width,height),Image.BILINEAR) ??
? ? ? ? new_img.save(os.path.join(outdir,os.path.basename(jpgfile)))
? ? except Exception as e:
? ? ? ? print(e)
for jpgfile in glob.glob("E:\\img\\*.jpg"):
? ? convertjpg(jpgfile,"E:\\lianhua")

方法三:該方法批量修改圖片大小和文件夾名稱(chēng)

import os
from PIL import Image
from PIL import ImageFile
ImageFile.LOAD_TRUNCATED_IMAGES = True
from matplotlib.font_manager import FontProperties

font = FontProperties(fname=r'c:\windows\fonts\SimSun.ttc', size=14)

# 獲取當(dāng)前路徑
path_abs = os.getcwd()
print u'*****************開(kāi)始文件名更名操作*****************'
print path_abs
# 遍歷當(dāng)前路徑下的文件以及文件目錄
for root, dir_name, file_name in os.walk(path_abs):
? ? # 統(tǒng)計(jì)文件夾個(gè)數(shù)
? ? num_dir = len(dir_name)
? ? for idx, item in enumerate(dir_name):
? ? ? ? print u'第', idx, u'個(gè)文件正在更名......'
? ? ? ? item_new = 'test_' + '0' * (1 - idx / 10) + str(idx)
? ? ? ? # 原文件路徑
? ? ? ? path_dir_old = path_abs + '\\' + item
? ? ? ? # print u'原文件路徑:', path_dir_old
? ? ? ? # 新文件路徑
? ? ? ? path_dir_new = path_abs + '\\' + item_new
? ? ? ? # print u'新文件路徑:', path_dir_new
? ? ? ? # 更名操作
? ? ? ? os.renames(path_dir_old, path_dir_new)
print u'*****************文件名更名完畢!*****************'

print u'*****************圖片名更名*******************'
for root1, dir_name1, file_name1 in os.walk(path_abs):
? ? num1_dir = len(dir_name1)
? ? for idx1, item1 in enumerate(dir_name1):
? ? ? ? path_dir1 = path_abs + '\\' + item1
? ? ? ? for root2, dir_name2, file_name2 in os.walk(path_dir1):
? ? ? ? ? ? for idx2, item2 in enumerate(file_name2):
? ? ? ? ? ? ? ? # 原路徑 + 圖片名
? ? ? ? ? ? ? ? item2_old = path_dir1 + '\\' + item2
? ? ? ? ? ? ? ? # 新路徑 + 圖片名(強(qiáng)制轉(zhuǎn)換成jpg格式,數(shù)字6制定圖片名長(zhǎng)度以及0的填充個(gè)數(shù))
? ? ? ? ? ? ? ? item_new2 = 'idx_'+ '0' * (5 - len(str(idx2))) + str(idx2)
? ? ? ? ? ? ? ? item2_new = path_dir1 + '\\' + item_new2 + '.jpg'
? ? ? ? ? ? ? ? # 更名
? ? ? ? ? ? ? ? os.rename(item2_old, item2_new)
? ? ? ? ? ? ? ? # resize 成指定尺寸大小
? ? ? ? ? ? ? ? img = Image.open(item2_new)
? ? ? ? ? ? ? ? img_new = img.resize((220, 220))
? ? ? ? ? ? ? ? # save 保存
? ? ? ? ? ? ? ? img_new.save(item2_new)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python運(yùn)維自動(dòng)化psutil模塊的監(jiān)控和管理深入探究

    Python運(yùn)維自動(dòng)化psutil模塊的監(jiān)控和管理深入探究

    這篇文章主要為大家介紹了Python運(yùn)維自動(dòng)化psutil模塊的監(jiān)控和管理深入探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • Python之變量類(lèi)型和if判斷方式

    Python之變量類(lèi)型和if判斷方式

    這篇文章主要介紹了Python之變量類(lèi)型和if判斷方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-05-05
  • python如何利用plt.legend()添加圖例代碼示例

    python如何利用plt.legend()添加圖例代碼示例

    用python的matplotlib畫(huà)圖時(shí),往往需要加圖例說(shuō)明,下面這篇文章主要給大家介紹了關(guān)于python如何利用plt.legend()添加圖例的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • Python NumPy 數(shù)組索引的示例詳解

    Python NumPy 數(shù)組索引的示例詳解

    數(shù)組索引是指使用方括號(hào)([])來(lái)索引數(shù)組值,numpy提供了比常規(guī)的python序列更多的索引工具,除了按整數(shù)和切片索引之外,數(shù)組可以由整數(shù)數(shù)組索引、布爾索引及花式索引,這篇文章主要介紹了Python NumPy 數(shù)組索引,需要的朋友可以參考下
    2023-01-01
  • python 擴(kuò)展print打印文件路徑和當(dāng)前時(shí)間信息的實(shí)例代碼

    python 擴(kuò)展print打印文件路徑和當(dāng)前時(shí)間信息的實(shí)例代碼

    本文通過(guò)實(shí)例代碼給大家介紹了python 擴(kuò)展print打印文件路徑和當(dāng)前時(shí)間信息,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-10-10
  • 一文帶你搞懂Python中isinstance和type的區(qū)別

    一文帶你搞懂Python中isinstance和type的區(qū)別

    在Python中,我們經(jīng)常需要檢查一個(gè)對(duì)象的類(lèi)型,Python提供了兩種方法來(lái)獲取對(duì)象的類(lèi)型:isinstance和type,這兩種方法有什么區(qū)別呢,本文將詳細(xì)介紹這兩種方法的區(qū)別和使用,需要的朋友可以參考下
    2023-06-06
  • Pycharm插件(Grep Console)自定義規(guī)則輸出顏色日志的方法

    Pycharm插件(Grep Console)自定義規(guī)則輸出顏色日志的方法

    這篇文章主要介紹了Pycharm插件(Grep Console)自定義規(guī)則輸出顏色日志的方法,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • Python實(shí)現(xiàn)的IP端口掃描工具類(lèi)示例

    Python實(shí)現(xiàn)的IP端口掃描工具類(lèi)示例

    這篇文章主要介紹了Python實(shí)現(xiàn)的IP端口掃描工具類(lèi),結(jié)合實(shí)例形式分析了Python基于socket模塊與多線(xiàn)程操作實(shí)現(xiàn)IP端口掃描的相關(guān)操作技巧,需要的朋友可以參考下
    2019-02-02
  • python爬取微信公眾號(hào)文章

    python爬取微信公眾號(hào)文章

    這篇文章主要為大家詳細(xì)介紹了python爬蟲(chóng)實(shí)戰(zhàn)案例,微信公眾號(hào)文章的爬取,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • 使用Python制作一個(gè)備忘錄工具

    使用Python制作一個(gè)備忘錄工具

    這篇文章主要為大家詳細(xì)介紹了如何使用Python開(kāi)發(fā)一個(gè)簡(jiǎn)單而功能強(qiáng)大的備忘錄應(yīng)用,以及提供詳細(xì)的示例代碼,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-12-12

最新評(píng)論

郑州市| 唐海县| 景洪市| 清水县| 桑日县| 大埔区| 名山县| 科技| 隆子县| 平泉县| 本溪市| 北宁市| 常山县| 凉城县| 东丽区| 迭部县| 隆化县| 彭山县| 湘阴县| 衡水市| 大渡口区| 汉寿县| 正蓝旗| 雷波县| 德化县| 观塘区| 栖霞市| 饶河县| 孝昌县| 诏安县| 泸水县| 棋牌| 孝昌县| 区。| 大田县| 萨嘎县| 涞水县| 临邑县| 定日县| 阿合奇县| 南靖县|