ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

MATLAB实现mat文件批处理转化为png格式(全网仅有!)

2020-11-11 07:31:50  阅读:733  来源: 互联网

标签:tmp mat fea MATLAB spa path os png


与我的CSDN博客相同的文案~~~~

由于部分算法(如边缘检测算法),跑出来的结果图是带有白色边框的,如下图:(跑过程序,做过算法的人都知道)

 

 那么这为后续处理提供了极大的不便,因为空白的地方就等于加入了没必要且不感兴趣的像素值,所以有一个方法就是直接提取结果变量,例如.mat,即直接用一个function转化为png或jpg格式,如下图。

 

 

因为是自己写的代码,所以只提供下载链接~

下面是跑出来的mat格式的文件:

 

 这是转化之后的图像:

 

 

**ps:**python转化的方法我也试过,但是受python版本的影响很大,如果你与博主分享的代码运行的python版本不一,就会报错,如KeyError: 'data',

 

 百度找了资料,加上b,还是

 

 无法~

python代码给出:

import cv2
import scipy.io as scio
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
import os

# 数据矩阵转图片的函数
def MatrixToImage(data):
    new_im = Image.fromarray(data,mode='RGB')
    return new_im

folder = r'C:\Users\lyd\Desktop\23'
path = os.listdir(folder)
for each_mat in path:
        first_name, second_name = os.path.splitext(each_mat)
        # 拆分.mat文件的前后缀名字,注意是**路径**
        #yong yu fen ge wen jian min yu kuo zhan min
        each_mat = os.path.join(folder, each_mat)
        # print(each_mat)
        array_struct = scio.loadmat(each_mat)
        fea_spa=array_struct['data']
        fea_tmp=array_struct[b'fea_tmp']
        for i  in range(1,len(fea_spa)):
             fea_spa_1=np.reshape(fea_spa[i],(32,32))
             print('i=',i)
             fea_spa_image = MatrixToImage(fea_spa_1)# 调用函数
             path='/home/kls/Desktop/data/fea_spa/'+first_name+'/'
             if os.path.exists(path) is False:
                 os.makedirs(path)
             fea_spa_image.save(path+str(i)+'.jpg')# 保存图片
             
             fea_tmp_1=np.reshape(fea_tmp[i],(32,32))
             print('i1=',i)
             fea_tmp_image = MatrixToImage(fea_tmp_1)# 调用函数
             path='/home/kls/Desktop/data/fea_tmp/'+first_name+'/'
             if os.path.exists(path) is False:
                 os.makedirs(path)
             fea_tmp_image.save(path+str(i)+'.jpg')# 保存图片

还有什么方法可以直接保存没有白边的图像呢?

 

标签:tmp,mat,fea,MATLAB,spa,path,os,png
来源: https://www.cnblogs.com/yxh23/p/13956901.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有