最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

ITK 實現(xiàn)多張圖像轉(zhuǎn)成單個nii.gz或mha文件案例

 更新時間:2020年07月01日 10:27:12   作者:zhimingf  
這篇文章主要介紹了ITK 實現(xiàn)多張圖像轉(zhuǎn)成單個nii.gz或mha文件案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

主要實現(xiàn)的部分是利用NameGeneratorType讀入系列圖像,見頭文件#include "itkNumericSeriesFileNames.h"。

需要包含的頭文件有:

#include "itkImage.h"
#include "itkImageSeriesReader.h"
#include "itkImageFileWriter.h"
#include "itkNumericSeriesFileNames.h"
#include "itkPNGImageIO.h"http://轉(zhuǎn)成JPG格式,將PNG替換成JPEG就可以。

int main( int argc, char ** argv )
{
 // 需要四個參數(shù),分別是程序起點,第一張圖像的編號和最后一張圖像的變化,輸出文件的名稱(包含路徑)
 if( argc < 4 )
 {
 std::cerr << "Usage: " << std::endl;
 std::cerr << argv[0] << " firstSliceValue lastSliceValue outputImageFile " << std::endl;
 return EXIT_FAILURE;
 }
//定義讀入圖像類型,創(chuàng)建對應(yīng)的reader
 typedef unsigned char  PixelType;
 const unsigned int Dimension = 3;

 typedef itk::Image< PixelType, Dimension > ImageType;
 
 typedef itk::ImageSeriesReader< ImageType > ReaderType;
 typedef itk::ImageFileWriter< ImageType > WriterType;

 ReaderType::Pointer reader = ReaderType::New();
 WriterType::Pointer writer = WriterType::New();

//輸入?yún)?shù)定義
 const unsigned int first = atoi( argv[1] );
 const unsigned int last = atoi( argv[2] );
 const char * outputFilename = argv[3];//輸出的文件名加上對應(yīng)格式的后綴即可,如mha或nii.gz

//系列圖像讀入
 typedef itk::NumericSeriesFileNames NameGeneratorType;
 NameGeneratorType::Pointer nameGenerator = NameGeneratorType::New();
 nameGenerator->SetSeriesFormat( "vwe%03d.png" );

 nameGenerator->SetStartIndex( first );
 nameGenerator->SetEndIndex( last );
 nameGenerator->SetIncrementIndex( 1 );//張數(shù)的增長間距

//讀入圖像,寫出圖像,進(jìn)行Update
 reader->SetImageIO( itk::PNGImageIO::New() );
 reader->SetFileNames( nameGenerator->GetFileNames() );
 writer->SetFileName( outputFilename );
 writer->SetInput( reader->GetOutput() );

 try
 {
 writer->Update();
 }
 catch( itk::ExceptionObject & err )
 {
 std::cerr << "ExceptionObject caught !" << std::endl;
 std::cerr << err << std::endl;
 return EXIT_FAILURE;
 }

 return EXIT_SUCCESS;
}

補充知識:將一組png圖片轉(zhuǎn)為nii.gz

主要之前使用matlab 對numpy數(shù)組存放方式不是很了解.應(yīng)該是[z,x,y]這樣在itksnamp上看就對了

import SimpleITK as sitk
import glob
import numpy as np
from PIL import Image
import cv2
 
import matplotlib.pyplot as plt # plt 用于顯示圖片
def save_array_as_nii_volume(data, filename, reference_name = None):
 """
 save a numpy array as nifty image
 inputs:
 data: a numpy array with shape [Depth, Height, Width]
 filename: the ouput file name
 reference_name: file name of the reference image of which affine and header are used
 outputs: None
 """
 img = sitk.GetImageFromArray(data)
 if(reference_name is not None):
 img_ref = sitk.ReadImage(reference_name)
 img.CopyInformation(img_ref)
 sitk.WriteImage(img, filename)
 
image_path = './oriCvLab/testCvlab/img/'
image_arr = glob.glob(str(image_path) + str("/*"))
image_arr.sort()
 
print(image_arr, len(image_arr))
allImg = []
allImg = np.zeros([165, 768,1024], dtype='uint8')
for i in range(len(image_arr)):
 single_image_name = image_arr[i]
 img_as_img = Image.open(single_image_name)
 # img_as_img.show()
 img_as_np = np.asarray(img_as_img)
 allImg[i, :, :] = img_as_np
 
# np.transpose(allImg,[2,0,1])
save_array_as_nii_volume(allImg, './testImg.nii.gz')
print(np.shape(allImg))
img = allImg[:, :, 55]
# plt.imshow(img, cmap='gray')
# plt.show()

以上這篇ITK 實現(xiàn)多張圖像轉(zhuǎn)成單個nii.gz或mha文件案例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python實現(xiàn)去除圖片中指定顏色的像素功能示例

    Python實現(xiàn)去除圖片中指定顏色的像素功能示例

    這篇文章主要介紹了Python實現(xiàn)去除圖片中指定顏色的像素功能,結(jié)合具體實例形式分析了Python基于pil與cv2模塊的圖形載入、運算、轉(zhuǎn)換等相關(guān)操作技巧,需要的朋友可以參考下
    2019-04-04
  • Python實現(xiàn)學(xué)生成績管理系統(tǒng)

    Python實現(xiàn)學(xué)生成績管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了Python實現(xiàn)學(xué)生成績管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • python實現(xiàn)碑帖圖片橫向拼接

    python實現(xiàn)碑帖圖片橫向拼接

    這篇文章主要為大家詳細(xì)介紹了python實現(xiàn)碑帖圖片橫向拼接,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-03-03
  • Flask框架實現(xiàn)debug模式下計算pin碼

    Flask框架實現(xiàn)debug模式下計算pin碼

    pin碼也就是flask在開啟debug模式下,進(jìn)行代碼調(diào)試模式的進(jìn)入密碼。本文為大家整理了Flask框架在debug模式下計算pin碼的方法,需要的可以參考一下
    2023-02-02
  • 用python介紹4種常用的單鏈表翻轉(zhuǎn)的方法小結(jié)

    用python介紹4種常用的單鏈表翻轉(zhuǎn)的方法小結(jié)

    這篇文章主要介紹了用python介紹4種常用的單鏈表翻轉(zhuǎn)的方法小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • python實現(xiàn)在目錄中查找指定文件的方法

    python實現(xiàn)在目錄中查找指定文件的方法

    這篇文章主要介紹了python實現(xiàn)在目錄中查找指定文件的方法,通過模糊查找與精確查找兩個實例較為詳細(xì)的闡述了文件查找的方法,是非常實用的技巧,需要的朋友可以參考下
    2014-11-11
  • Python采用raw_input讀取輸入值的方法

    Python采用raw_input讀取輸入值的方法

    這篇文章主要介紹了Python采用raw_input讀取輸入值的方法,對初學(xué)者有很好的學(xué)習(xí)借鑒價值,需要的朋友可以參考下
    2014-08-08
  • 用Python繪制漫步圖實例講解

    用Python繪制漫步圖實例講解

    在本篇文章里小編給大家整理的是一篇關(guān)于用Python繪制漫步圖實例講解內(nèi)容,需要的朋友們可以學(xué)習(xí)下。
    2020-02-02
  • 500行python代碼實現(xiàn)飛機大戰(zhàn)

    500行python代碼實現(xiàn)飛機大戰(zhàn)

    這篇文章主要為大家詳細(xì)介紹了500行python代碼實現(xiàn)飛機大戰(zhàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • python飛機大戰(zhàn)pygame游戲框架搭建操作詳解

    python飛機大戰(zhàn)pygame游戲框架搭建操作詳解

    這篇文章主要介紹了python飛機大戰(zhàn)pygame游戲框架搭建操作,設(shè)計pygame模塊游戲創(chuàng)建、初始化、精靈組設(shè)置等相關(guān)操作技巧,需要的朋友可以參考下
    2019-12-12

最新評論

长岭县| 丰台区| 淮北市| 天峻县| 德惠市| 同仁县| 灌云县| 黄冈市| 柳林县| 阳谷县| 永顺县| 海城市| 锦州市| 信丰县| 陆川县| 庆城县| 波密县| 张北县| 徐水县| 河津市| 福州市| 即墨市| 华坪县| 永川市| 永新县| 邳州市| 三明市| 廊坊市| 大同市| 阿拉尔市| 合川市| 南陵县| 油尖旺区| 大兴区| 驻马店市| 延安市| 古丈县| 手游| 获嘉县| 昔阳县| 萝北县|