国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

醫(yī)學(xué)nii圖像 預(yù)處理——圖像裁剪 重采樣 灰度區(qū)域 歸一化 修改圖像尺寸

這篇具有很好參考價(jià)值的文章主要介紹了醫(yī)學(xué)nii圖像 預(yù)處理——圖像裁剪 重采樣 灰度區(qū)域 歸一化 修改圖像尺寸。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

鄙人主要研究方向?yàn)獒t(yī)學(xué)圖像配準(zhǔn),在使用CT數(shù)據(jù)集之前需要對(duì)數(shù)據(jù)進(jìn)行預(yù)處理。
常規(guī)預(yù)處理步驟:(*代表本代碼有)
1.裁剪出ROI區(qū)域。
目的:減小圖像尺寸,減小內(nèi)存消耗,減小無(wú)關(guān)信息,可提高實(shí)驗(yàn)精度
2.重采樣。
一般會(huì)重采樣到各向同性,例如,將圖像重采樣到每體素代表1
1
1mm實(shí)際體積
3.CT轉(zhuǎn)HU,斜率,截距.[CT圖像專有,本文代碼沒(méi)寫(xiě)這個(gè)]
*4.截取ROI灰度區(qū)域。
當(dāng)處理的圖像為肺部圖像時(shí),也稱為截取肺窗,即肺所在灰度范圍,常見(jiàn)肺窗[窗寬:900,窗位:-550],寬肺窗[窗寬:1600,窗位:-600]
*5.歸一化
目的:防止梯度防炸
6.resize圖像尺寸。
由算法(有些算法要求輸入圖片尺寸統(tǒng)一,有些算法則需要保證原圖)或電腦性能(顯存小,只能縮小圖片咯~)決定

直接上代碼文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-531105.html

import nibabel as nib
import numpy as np
import torch

def get_gray_range(image):
    '獲取圖像信息:最大最小值'
    image = np.reshape(image, (1, image.shape[0] * image.shape[1] * image.shape[2]))
    image_gray_list = image.tolist()[0]
    image_gray_list.sort()  # 默認(rèn)升序排列灰度值
    point_num = len(image_gray_list)
    min_num = round(point_num * 0.05)
    max_num = round(point_num * 0.95)
    min_gray_value = image_gray_list[min_num]
    max_gray_value = image_gray_list[max_num - 1]

    return min_gray_value, max_gray_value

def resampling_isotropic(data,voxel,spacing=[1, 1, 1]):
    """
    利用上下采樣原理,恢復(fù)到各向同性
    :param data: 輸入圖像
    :param spacing: 各向同行或異性,默認(rèn)為1*1*1
    :return:
    """
    # 獲取圖像信息:長(zhǎng)寬高;
    height, weight, deepth = data.shape

    # 輸出圖的size
    size_X = int(height*voxel[0]/spacing[0])
    size_Y = int(weight*voxel[1]/spacing[1])
    size_Z = int(deepth*voxel[2]/spacing[2])

    # ndarray轉(zhuǎn)torch;增加兩維,目的是可以在"上下采樣"中使用三線性插值法
    data = torch.tensor(data).unsqueeze(0).unsqueeze(0)

    # torch轉(zhuǎn).float32
    data = data.to(torch.float32)

    """
    函數(shù)說(shuō)明:
    torch.nn.functional.interpolate(input, size=None, scale_factor=None, mode='nearest', align_corners=None, recompute_scale_factor=None)
    
    input (Tensor) – the input tensor
    size (int or Tuple[int] or Tuple[int, int] or Tuple[int, int, int]) – output spatial size.
    scale_factor (float or Tuple[float]) – 空間大小的乘數(shù)。如果scale_factor是一個(gè)tuple,它的長(zhǎng)度必須匹配input.dim()。
    mode (str) – algorithm used for upsampling: nearest(Default), linear (3D-only), bilinear, bicubic (4D-only), trilinear (5D-only), area
    align_corners (bool, optional):幾何上,我們把輸入和輸出的像素看作正方形而不是點(diǎn)。默認(rèn)值:False
    如果設(shè)置為True,輸入和輸出張量將由它們的角像素中心點(diǎn)對(duì)齊,并保留角像素的值。
    如果設(shè)置為False,則輸入和輸出張量由它們的角像素的角點(diǎn)對(duì)齊,并且插值對(duì)邊界外值使用邊值填充,使得在scale_factor保持不變的情況下,該操作與輸入大小無(wú)關(guān)。
    這只在mode is 'linear', 'bilinear', 'bicubic' or 'trilinear'時(shí)才有效果。
    recompute_scale_factor (bool, optional) :重新計(jì)算用于插值計(jì)算的scale_factor。
    如果為True,則必須傳入scale_factor,并使用scale_factor計(jì)算輸出大小。計(jì)算出的輸出大小將用于為插值推斷新的尺度。
    注意,當(dāng)scale_factor是浮點(diǎn)數(shù)時(shí),由于舍入和精度問(wèn)題,它可能與重新計(jì)算的scale_factor不同。
    如果為False,那么size或scale_factor將直接用于插值。
    """
    data = torch.nn.functional.interpolate(data,
                                            size=[size_X,size_Y,size_Z],
                                            mode='trilinear',
                                            align_corners=False)
    return data[0, 0, :, :, :]

if __name__ == "__main__":
    """
    預(yù)處理主程序
    需修改的參數(shù):
    img_name:圖片名稱
    old_path:數(shù)據(jù)集舊路徑
    new_path:數(shù)據(jù)集新路徑
    """

    img_path = old_path + img_name
    # 打開(kāi)nii格式
    img = nib.load(img_path)
    img_data = np.asarray(img.dataobj)

    # 把仿射矩陣和頭文件都存下來(lái)
    img_affine = img.affine
    img_hdr = img.header

    # 獲取圖像信息:最大最小值
    img_min, img_max = get_gray_range(img_data)

    # 獲取圖像信息:長(zhǎng)寬高;
    height, weight, deepth = img_data.shape

    # 獲取圖像信息:voxel spacing,
	voxel = [img_hdr['pixdim'][1]]
    voxel.append(img_hdr['pixdim'][2])
    voxel.append(img_hdr['pixdim'][3])

    # 1.裁剪出感興趣ROI區(qū)域,自定義裁剪范圍數(shù)據(jù)
    ROIrange_XYZ=[40,440,20,240,10,130] 
    xmin=ROIrange_XYZ[0]
    xmax=ROIrange_XYZ[1]
    ymin=ROIrange_XYZ[2]
    ymax=ROIrange_XYZ[3]
    zmin=ROIrange_XYZ[4]
    zmax=ROIrange_XYZ[5]
    img_crop = img_data[xmin:xmax,ymin:ymax,zmin:zmax]

    # 2.重采樣??梢曰謴?fù)到各向同性[1,1,1]
    resample_spacing=[1,1,1]
    img_isotropic = resampling_isotropic(data=img_crop,voxel=voxel,spacing=resample_spacing)

    # 修改NIfTI affines
    scaling_affine = np.diag([resample_spacing[0], resample_spacing[1], resample_spacing[2], 1])

    # 3.裁剪出肺窗
    TonalRange=[-1000,-100]
    clamp_min = TonalRange[0] if img_min <= TonalRange[0] else img_min
    clamp_max = TonalRange[1] if img_max >= TonalRange[1] else img_max
    intrange = clamp_max - clamp_min
    img_clamp = torch.clamp(img_isotropic,min=clamp_min,max=clamp_max)

    # 4 歸一化處理,灰度范圍-》[0,1]
    img_normalize = (img_clamp-clamp_min) / intrange

    # 5 保存為nii格式
    # NiBabel網(wǎng)址 https://nipy.org/nibabel/manual.html
    img_new = nib.Nifti1Image(img_normalize, scaling_affine, img_hdr)
    img_new_path = new_path + img_name
    nib.save(img_new, img_new_path)

到了這里,關(guān)于醫(yī)學(xué)nii圖像 預(yù)處理——圖像裁剪 重采樣 灰度區(qū)域 歸一化 修改圖像尺寸的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 圖像預(yù)處理方法

    圖像預(yù)處理方法

    兩個(gè)基本的形態(tài)學(xué)操作是腐 和膨脹。他們 的變體構(gòu)成了開(kāi)運(yùn)算 ,閉運(yùn)算, 梯度等。 根據(jù)卷積核的大小前景的所有像素會(huì)腐 掉 變?yōu)?0 ,所以前景物體會(huì)變小整幅圖像的白色區(qū)域會(huì)減少。 對(duì)于去除白噪聲很有用 也可以用來(lái)斷開(kāi)兩個(gè) 在一塊的物體等。 函數(shù)原型: ?src: 輸入原

    2023年04月11日
    瀏覽(36)
  • 圖像預(yù)處理技術(shù)與算法

    圖像預(yù)處理是計(jì)算機(jī)視覺(jué)和圖像處理中非常關(guān)鍵的第一步,其目的是為了提高后續(xù)算法對(duì)原始圖像的識(shí)別、分析和理解能力。以下是一些主要的圖像預(yù)處理技術(shù): 1.圖像增強(qiáng): 對(duì)比度調(diào)整:通過(guò)直方圖均衡化(Histogram Equalization)等方法改善圖像整體或局部的對(duì)比度。 伽瑪校

    2024年02月20日
    瀏覽(35)
  • 【第十七屆智能車】智能車圖像處理(1)-圖像預(yù)處理

    【第十七屆智能車】智能車圖像處理(1)-圖像預(yù)處理

    本博客使用的硬件是逐飛總鉆風(fēng)130°無(wú)畸變攝像頭,采用的圖像分辨率為188*120,主控為CH32V307VCT6,使用DVI接口進(jìn)行連接。 我們?cè)诒敬伪荣愔胁捎玫氖穷^尾車總鉆風(fēng)攝像頭+中間車線性CCD的方案。這兩個(gè)感光部件各有優(yōu)劣,使用方式和圖像處理也大相徑庭。這里討論的是總鉆風(fēng)

    2024年02月08日
    瀏覽(26)
  • 使用 SKimage 的圖像預(yù)處理

    使用 SKimage 的圖像預(yù)處理

    介紹 圖像是視覺(jué)對(duì)象的二維表示,例如照片、繪畫(huà)或素描。在數(shù)字成像中,圖像存儲(chǔ)為像素值數(shù)組,其中每個(gè)像素代表圖像亮度和顏色的樣本。每個(gè)像素的顏色可以由一個(gè)或多個(gè)通道表示,如傳統(tǒng)彩色圖像中的紅色、綠色和藍(lán)色 (RGB) 通道。在本文中,你將學(xué)習(xí)各種圖像預(yù)處

    2024年02月03日
    瀏覽(28)
  • 圖像預(yù)處理 Tricks【1】:Contours

    圖像預(yù)處理 Tricks【1】:Contours

    輪廓可以簡(jiǎn)單地理解為連接所有連續(xù)點(diǎn)(沿物體邊界)的曲線,這些點(diǎn)通常具有相同的顏色或強(qiáng)度。 輪廓在圖像分析中具有重要意義,是物體形狀分析和對(duì)象檢測(cè)和識(shí)別的有用工具,是理解圖像語(yǔ)義信息的重要依據(jù)。 本文主要介紹了在 opencv 中,一些重要的用于處理物體輪廓

    2024年02月11日
    瀏覽(28)
  • 關(guān)于圖像分割的預(yù)處理 transform

    關(guān)于圖像分割的預(yù)處理 transform

    目錄 1. 介紹 2. 關(guān)于分割中的 resize 問(wèn)題 3. 分割的 transform 3.1 隨機(jī)縮放?RandomResize 3.2 隨機(jī)水平翻轉(zhuǎn)?RandomHorizontalFlip 3.3?隨機(jī)豎直翻轉(zhuǎn)?RandomVerticalFlip 3.4 隨機(jī)裁剪?RandomCrop 3.5 ToTensor 3.6 normalization 3.7?Compose 3.8 中心裁剪 3.9 Resize 縮放 4. 預(yù)處理結(jié)果可視化 圖像分割的預(yù)處理不像

    2024年02月04日
    瀏覽(28)
  • 計(jì)算機(jī)視覺(jué)(2)——圖像預(yù)處理

    計(jì)算機(jī)視覺(jué)(2)——圖像預(yù)處理

    二、圖像預(yù)處理 2.1 介紹? 2.2 特征提取方法 2.2.1 直方圖 2.2.2 CLAHE 2.2.3 形態(tài)學(xué)運(yùn)算 2.2.4 空間域處理及其變換 2.2.5 空間域分析及變換? (1) 均值濾波 (2)中值濾波 (3)高斯濾波 (4)?梯度Prewitt濾波 (5)?梯度Sobel濾波 (6)?梯度Laplacian濾波 (7)?其他濾波? 2.2.6 頻域分

    2024年02月03日
    瀏覽(32)
  • 【Computer Vision】圖像數(shù)據(jù)預(yù)處理詳解

    【Computer Vision】圖像數(shù)據(jù)預(yù)處理詳解

    活動(dòng)地址:[CSDN21天學(xué)習(xí)挑戰(zhàn)賽](https://marketing.csdn.net/p/bdabfb52c5d56532133df2adc1a728fd) 作者簡(jiǎn)介 :在校大學(xué)生一枚,華為云享專家,阿里云星級(jí)博主,騰云先鋒(TDP)成員,云曦智劃項(xiàng)目總負(fù)責(zé)人,全國(guó)高等學(xué)校計(jì)算機(jī)教學(xué)與產(chǎn)業(yè)實(shí)踐資源建設(shè)專家委員會(huì)(TIPCC)志愿者,以及編程

    2024年02月06日
    瀏覽(25)
  • OpenCV圖像預(yù)處理常用函數(shù)及流程

    OpenCV圖像預(yù)處理常用函數(shù)及流程

    在PyCharm終端中,運(yùn)行如下命令 由于默認(rèn)使用的為外網(wǎng)資源,下載速度和穩(wěn)定性較差,具體看網(wǎng)絡(luò)狀態(tài)。如下命令為使用清華鏡像下載安裝相應(yīng)的包 在終端中運(yùn)行命令時(shí),Windows10系統(tǒng)可能會(huì)存在如下報(bào)錯(cuò):無(wú)法加載激活文件,因此在此系統(tǒng)上禁止運(yùn)行腳本。此情況是因?yàn)閣in

    2024年02月05日
    瀏覽(29)
  • 【CV學(xué)習(xí)筆記】圖像預(yù)處理warpaffine

    【CV學(xué)習(xí)筆記】圖像預(yù)處理warpaffine

    在學(xué)習(xí)圖像預(yù)處理的時(shí)候發(fā)現(xiàn),之前用的圖像預(yù)處理方法一般為 resize和letter box,這兩種方法比較低效,后來(lái)在手寫(xiě)AI中接觸到了warpaffine,只需要一步就能夠?qū)D像進(jìn)行預(yù)處理,同時(shí)還能很方便的進(jìn)行cuda加速,于是便記錄下來(lái)。 歡迎正在學(xué)習(xí)或者想學(xué)的CV的同學(xué)進(jìn)群一起討論與

    2023年04月08日
    瀏覽(69)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包