python关于图片处理的小工具
Posted Mario cai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python关于图片处理的小工具相关的知识,希望对你有一定的参考价值。
将数组保存为TXT
np.savetxt("./result.txt", img_arr,fmt ='%d')
将数组保存为图片
import numpy as np
import matplotlib.pyplot as plt
x = np.array([[1, 2, 3], [4, 5, 6]], np.int32)
plt.imshow(x)
plt.savefig("array")
nii变RGB(先读取数组再成像再保存)
import nibabel as nib
import numpy as np
import os
import matplotlib.pyplot as plt
file = r'C:\\新建文件夹/mask/1.nii'
#filenames = os.listdir(file)
img = nib.load(file)
nii = img.dataobj
(x, y, z) = nii.shape
for i in range(0, 200):
#img_path = os.path.join(file, f)
img_arr = nii[:, i, :]
plt.imshow(img_arr)
plt.savefig('%d.png'%(i+1))
RGBA TO RGB
from PIL import Image
import nibabel as nib
import numpy as np
import os
file_dir = r'C:\\Users\\Admin\\SIAT\\unet-pytorch-main\\VOCdevkit\\VOC2007\\JPEGImages\\\\'
out_dir = r'C:\\新建文件夹\\\\'
img = os.listdir(file_dir)
#print(img.mode)
#print(img.mode)
for i in img:
print(i)
I = Image.open(file_dir + i)
L = I.convert('RGB')
L.save(out_dir+i)
图片测试
import cv2
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
y = Image.open(r'C:\\Users\\Admin\\SIAT\\unet-pytorch-main\\VOCdevkit\\VOC2007\\JPEGImages\\0.jpg')
x = cv2.imread(r'C:\\Users\\Admin\\SIAT\\unet-pytorch-main\\VOCdevkit\\VOC2007\\JPEGImages\\0.jpg')
plt.imshow(x)
#np.savetxt("./result1.txt", x, fmt='%d')#数据输出到TXT
print(x)
print(x.shape)
print(type(y))
print(y.getbands())
print(x.dtype)
批量重命名
# -*- coding:utf8 -*-
import os
class BatchRename():
'''
批量重命名文件夹中的图片文件
'''
def __init__(self):
self.path = r'C:\\Users\\Admin\\SIAT\\Inf-Net-master\\Dataset\\TrainingSet\\LungInfection-Train\\Pseudo-label\\Edge'
def rename(self):
filelist = os.listdir(self.path)
total_num = len(filelist)
i = 0
for item in filelist:
if item.endswith('.png'):
src = os.path.join(os.path.abspath(self.path), item)
dst = os.path.join(os.path.abspath(self.path), str(i) + '.png')
try:
os.rename(src, dst)
print('converting %s to %s ...' % (src, dst))
i = i + 1
except:
continue
print('total %d to rename & converted %d jpgs' % (total_num, i))
if __name__ == '__main__':
demo = BatchRename()
demo.rename()
PNG TO JPG
import os
import string
dirName = r"C:\\Users\\Admin\\SIAT\\unet-pytorch-main\\VOCdevkit\\VOC2007\\JPEGImages\\\\" #最后要加双斜杠,不然会报错
li=os.listdir(dirName)
for filename in li:
newname = filename
newname = newname.split(".")
if newname[-1]=="png":
newname[-1]="jpg"
newname = str.join(".",newname) #这里要用str.join
filename = dirName+filename
newname = dirName+newname
os.rename(filename,newname)
print(newname,"updated successfully")
图片转npy和查看npy
import cv2
import os
import numpy
import glob
import numpy as np
import imageio
import os
import numpy as np
import scipy.misc
import matplotlib.pyplot as plt
import PIL
from PIL import Image
#图片转成npy文件
os.chdir(r'C:\\EGFR20\\新建文件夹') #切换python工作路径到你要操作的图片文件夹
a=np.ones((10,512,512)) #利用np.ones()函数生成一个三维数组,当然也可用np.zeros,此数组的每个元素a[i]保存一张图片
i=0
for filename in os.listdir(r'C:\\EGFR20\\新建文件夹'): #使用os.listdir()获取该文件夹下每一张图片的名字
im=imageio.imread(filename)
a[i]=im
i=i+1
print(a)
if (i == 190): # 190为文件夹中的图片数量
break
np.save('你要保存的.npy文件所在路径及名字',a)
查看npy文件
path = r'C:\\EGFR20\\新建文件夹\\你要保存的.npy文件所在路径及名字.npy' # 要转换为图片的.npy文件,本次.npy文件包含多张图片的内容
data = np.load(path)
for i in range (data.shape[0]):
B = data[ i, : ,:] #i为第i张图片
image = Image.fromarray(B)
plt.ion() # 打开交互模式
image.show() #显示图片
plt.pause(5)
plt.ioff() # 显示完后一定要配合使用plt.ioff()关闭交互模式,否则可能出奇怪的问题
plt.clf() # 清空图片
plt.close() # 清空窗口
以上是关于python关于图片处理的小工具的主要内容,如果未能解决你的问题,请参考以下文章