欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用npy轉image圖像并保存的實例

 更新時間:2020年07月01日 09:00:29   作者:Mr.Q  
這篇文章主要介紹了使用npy轉image圖像并保存的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

1. 用于分類模型:

import numpy as np
import scipy.misc
import cv2
import os
 
# DF1
path = "/home/pi/工作/predict1/"
npy_list = os.listdir(path)
save_path = "/home/pi/predict1_img/"
if not os.path.exists(save_path):
 os.mkdir(save_path)
 
for i in range(0, len(npy_list)):
 print(i)
 print(npy_list[i])
 npy_full_path = os.path.join(path, npy_list[i])
 img = np.load(npy_full_path) # load進來
 
 save_full_path = os.path.join(save_path, npy_list[i][:-4])
 scipy.misc.imsave(save_full_path, img) # 保存

2. 用于分割模型

"""
將數(shù)據(jù)集隨機分成訓練集、測試集
傳入?yún)?shù):
ratio = 0.7 # 訓練樣本比例
path = "/home/pi/20190701_0705" # 數(shù)據(jù)路徑
new_path = "/home/pi/20190701_0705_new2" # 保存路徑
使用方法:
temp = Generate_Train_and_Test(path, new_path, ratio)
temp.splict_data()
"""
import random
import os
import cv2
 
def makeDir(path):
 try:
  if not os.path.exists(path):
   if not os.path.isfile(path):
    # os.mkdir(path)
    os.makedirs(path)
    return 0
  else:
   return 1
 except Exception as e:
  print(str(e))
  return -2
 
class Generate_Train_and_Test:
 
 def __init__(self, path, new_path, ratio):
  if not os.path.exists(new_path):
   makeDir(new_path)
  self.path = path
  self.new_path = new_path
  self.ratio = ratio
  self.train_sample_path = os.path.join(new_path, "train")
  self.test_sample_path = os.path.join(new_path, "test")
 
  makeDir(self.train_sample_path)
  makeDir(self.test_sample_path)
 
 def splict_data(self):
  class_names = os.listdir(self.path) # 類別:bg and ng10
  for name in class_names:
   print("process class name=%s" % name)
   tmp_class_name = os.path.join(self.path, name)
   save_train_class_name = os.path.join(self.train_sample_path, name)
   save_test_class_name = os.path.join(self.test_sample_path, name)
   makeDir(save_train_class_name)
   makeDir(save_test_class_name)
   if os.path.isdir(tmp_class_name):
    image_names = os.listdir(tmp_class_name) # 其中一個類別的所有圖像
    image_names = [f for f in image_names if not f.endswith('_mask.png')]
    total = len(image_names)
 
    # 1, 打亂當前類中所有圖像
    random.shuffle(image_names)
 
    # 2, 從當前類(ng)中,取前面的圖像作為train data
    train_temp = int(self.ratio * total) # 打亂后,取前面作為train_data
    for i in range(0, train_temp):
     print(i, image_names[i])
     temp_img_name = os.path.join(tmp_class_name, image_names[i])
     train_image = cv2.imread(temp_img_name)
     temp_label_name = os.path.join(tmp_class_name, image_names[i][:-4] + '_mask.png')
     train_label = cv2.imread(temp_label_name)
 
     save_train_img_name = os.path.join(save_train_class_name, image_names[i])
     cv2.imwrite(save_train_img_name, train_image)
 
     save_train_label_name = os.path.join(save_train_class_name, image_names[i][:-4] + '_mask.png')
     cv2.imwrite(save_train_label_name, train_label)
 
    # 3, 從當前類(bg)中,取后面的圖像作為test data
    for i in range(train_temp, total):
     print(i, image_names[i])
     test_img_name = os.path.join(tmp_class_name, image_names[i])
     test_image = cv2.imread(test_img_name)
     test_label_name = os.path.join(tmp_class_name, image_names[i][:-4] + '_mask.png')
     test_label = cv2.imread(test_label_name)
 
     save_test_img_name = os.path.join(save_test_class_name, image_names[i])
     cv2.imwrite(save_test_img_name, test_image)
 
     save_test_label_name = os.path.join(save_test_class_name, image_names[i][:-4] + '_mask.png')
     cv2.imwrite(save_test_label_name, test_label)
 
ratio = 0.7 # 訓練樣本比例
path = "/home/pi/工作/20190712_splict" # 數(shù)據(jù)路徑
new_path = "/home/pi/工作/20190712_splict_new3" # 保存路徑
 
temp = Generate_Train_and_Test(path, new_path, ratio)
temp.splict_data()

補充知識:python把由圖片組成的文件夾轉換為.npy文件

由于深度神經網(wǎng)絡的需要,我要將一個里面全是.png格式的圖片的文件夾轉換為一個.npy文件,即將一個圖片文件夾轉換成一個.npy文件。

具體思路為:

若已知文件夾中圖片數(shù)量,可生成一個三維數(shù)組,第一維表示圖片數(shù)量,后兩維表示一張圖片的尺寸;

利用np.save()函數(shù)將生成的三維數(shù)組保存成一個.npy文件

import numpy as np
import imageio
import os
os.chdir('E:/RegistrationCode/papercode/datasets/mri_2d_test')  #切換python工作路徑到你要操作的圖片文件夾,mri_2d_test為我的圖片文件夾
a=np.ones((190,192,160)) #利用np.ones()函數(shù)生成一個三維數(shù)組,當然也可用np.zeros,此數(shù)組的每個元素a[i]保存一張圖片
i=0
for filename in os.listdir(r"E:/RegistrationCode/papercode/datasets/mri_2d_test"): #使用os.listdir()獲取該文件夾下每一張圖片的名字
 im=imageio.imread(filename)
 a[i]=im
 i=i+1
 if(i==190): #190為文件夾中的圖片數(shù)量
 break
np.save('你要保存的.npy文件所在路徑及名字',a)

以上這篇使用npy轉image圖像并保存的實例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • python實現(xiàn)可變變量名方法詳解

    python實現(xiàn)可變變量名方法詳解

    在本篇文章里小編給大家整理了關于python實現(xiàn)可變變量名的相關知識點內容以及實例代碼,需要的朋友們參考下。
    2019-07-07
  • python詞云庫wordcloud的使用方法與實例詳解

    python詞云庫wordcloud的使用方法與實例詳解

    這篇文章主要介紹了python詞云庫wordcloud的使用方法與實例詳解,需要的朋友可以參考下
    2020-02-02
  • python中判斷集合范圍的方法小結

    python中判斷集合范圍的方法小結

    這篇文章主要介紹了python中判斷集合范圍的方法小結,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • python實用的快捷語法技巧大全

    python實用的快捷語法技巧大全

    初識Python語言,覺得python滿足了我上學時候對編程語言的所有要求,下面這篇文章主要給大家介紹了關于python實用的快捷語法技巧的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-02-02
  • Python學習之sys模塊使用教程詳解

    Python學習之sys模塊使用教程詳解

    sys模塊?與?os包一樣,也是對系統(tǒng)資源進行調用。功能同樣也是非常豐富。本文將對sys模塊的一些簡單且常用的函數(shù)進行介紹,感興趣的可以學習一下
    2022-03-03
  • Python面向對象編程基礎解析(二)

    Python面向對象編程基礎解析(二)

    這篇文章主要介紹了Python面向對象編程基礎解析,具有一定參考價值,需要的朋友可以了解下。
    2017-10-10
  • Pygame中Sprite的使用方法示例詳解

    Pygame中Sprite的使用方法示例詳解

    這篇文章主要介紹了Pygame中Sprite的使用方法,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-09-09
  • Python中你應該知道的一些內置函數(shù)

    Python中你應該知道的一些內置函數(shù)

    python提供了內聯(lián)模塊buidin,該模塊定義了一些軟件開發(fā)中常用的函數(shù),這些函數(shù)實現(xiàn)了數(shù)據(jù)類型的轉換,數(shù)據(jù)的計算,序列的處理等功能。下面這篇文章主要給大家介紹了Python中一些大家應該知道的內置函數(shù),文中總結的非常詳細,需要的朋友們下面來一起看看吧。
    2017-03-03
  • python類參數(shù)self使用示例

    python類參數(shù)self使用示例

    python中__new__和__init__到底是怎么一回事,使用方法看下面的代碼,大家參考使用吧
    2014-02-02
  • python實現(xiàn)微信發(fā)送郵件關閉電腦功能

    python實現(xiàn)微信發(fā)送郵件關閉電腦功能

    這篇文章主要介紹了python實現(xiàn)微信發(fā)送郵件關閉電腦功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02

最新評論