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()                # 清空窗口

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mario cai

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值