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关于图片处理的小工具的主要内容,如果未能解决你的问题,请参考以下文章

Python爬虫脚本:一个可以下载图片视频文件的小工具

职场办公必备:快速将图片转文字的小技巧

运用好Python处理文档的小技巧,让你成为女神心中superstar!

简单bmp图片处理工具——python实现

ShoeBox一个超级好用的图片切割工具

关于py的mysql检测代理是否可用的小案例