日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

如何实现图像间精确配准(matlab)

發(fā)布時(shí)間:2024/3/24 循环神经网络 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何实现图像间精确配准(matlab) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

這里主要講解的是多模態(tài)或者說是多序列MRI圖像配準(zhǔn)。采用的圖片是人體膝蓋圖。配準(zhǔn)暫且分為五部分。
Step1.?下載圖片
Step2.?初始配準(zhǔn)(粗配準(zhǔn))
Step3.?提高配準(zhǔn)精度
Step4.?利用初始條件提高配準(zhǔn)精度配準(zhǔn)
Step5.?結(jié)果滿意不滿意,你說了算
下面一一詳細(xì)說明以上幾個(gè)步驟!
一,下載圖片
????????這里采用的圖片是matlab子帶的兩張MR膝蓋圖,“knee1.dcm”?作為參考圖像,"knee2.dcm"為浮動圖像!

1

2

fixed?=?dicomread('knee1.dcm');??????%?讀參考圖像fixed

moving?=?dicomread('knee2.dcm');?%??讀浮動圖像moving



可能接下來大家關(guān)注的問題就是這兩幅圖像到底有什么區(qū)別,這種區(qū)別又有多大的可視化程度,下面就為推薦兩個(gè)比較好用的函數(shù)用于觀測兩幅圖像的區(qū)別。

1

2

figure,?imshowpair(moving,?fixed,?'method');

title('Unregistered');



imshowpair函數(shù)就是指以成雙成對的形式顯示圖片,其中一個(gè)重要的參數(shù)就是‘method’,他又4個(gè)選擇
(1)‘falsecolor’?字面意思理解就是偽彩色的意思了,其實(shí)就是把兩幅圖像的差異用色彩來表示,這個(gè)是默認(rèn)的參數(shù)。
(2)‘blend’?這是一種混合透明處理類型,技術(shù)文檔的翻譯是alpha?blending,大家自己理解吧。
(3)‘diff’?這是用灰度信息來表示亮度圖像之間的差異,這是對應(yīng)‘falsecolor’的一種方式。
(4)參數(shù)‘monotage’可以理解成‘蒙太奇’,這是一種視頻剪輯的藝術(shù)手法,其實(shí)在這里我們理解成拼接的方法就可以了。
為什么在這里羅里吧嗦的說這么多的顯示呢,大家知道"人靠衣裝,美靠...."(就不多說了吧),總之就是一個(gè)好的視覺效果能給人以耳目一新的效果。

嗯嗯,這個(gè)就是蒙太奇的效果了,


這兩個(gè)則分別是偽彩色,混合透明處理了,至于大家接受那個(gè)就要看自己的愛好了
說到了這里終于結(jié)束了這關(guān)沒有意義的讀圖環(huán)節(jié),請大家原諒我的無恥吧。

二,初始配準(zhǔn)(粗配準(zhǔn))
初始配準(zhǔn)就是大致的使圖像對其,使其差別不要太明顯,以方便下一步的精細(xì)配準(zhǔn)環(huán)節(jié)。
函數(shù)imregconfig這在個(gè)環(huán)節(jié)可是主角,從名字上看就知道他要設(shè)置一些參數(shù)和方法了,其實(shí)他真正的作用是配置優(yōu)化器和度量準(zhǔn)則,

1

[optmizer,?metric]?=?imregconfig(modality);


參數(shù)modality指定fixed?image,?moving?image之間的關(guān)系,有兩種選擇‘monomodal’,?'multimodal'兩種,分別質(zhì)量兩幅圖像是單一模態(tài)還是多模態(tài),根據(jù)需要自己選擇。
返回的參數(shù)optimizer是用于優(yōu)化度量準(zhǔn)則的優(yōu)化算法,這里有
registration.optimizer.RegularStepGradientDescent?或者?registration.optimizer.OnePlusOneEvolutionary兩種可供選擇。
輸出參數(shù)metric則是注明了度量兩幅圖片相似度的方法,提供了均方誤差(registration.metric.MeanSquares)和互信息(registration.metric.MattesMutualInformation)兩種供選擇。
當(dāng)然大家也可以根據(jù)結(jié)構(gòu)擴(kuò)充這兩個(gè)參數(shù)。
到這里優(yōu)化器和度量準(zhǔn)別就已將做好了,是不是簡單到?jīng)]朋友。

要上大菜了,配準(zhǔn)代碼

1

2

3

movingRegisteredDefault?=?imregister(moving,?fixed,?'affine',?optimizer,?metric);

figure,?imshowpair(movingRegisteredDefault,?fixed);

title('A:?Default?registration');


imregister函數(shù)根據(jù)取得的optimizer,metric參數(shù)對2D,3D參考圖像做變換(transform)目的是fixed,moving?image對其,大家關(guān)注到有一個(gè)參數(shù)‘a(chǎn)ffine’,他是指該變化是仿射變換,同樣該參數(shù)還可以選為
‘translation’?(x,y)坐標(biāo)平移變換,不牽涉到旋轉(zhuǎn)個(gè)尺度變換
‘rigid’?剛性變換(平移和旋轉(zhuǎn))
‘similarity’?改變換包括了平移,旋轉(zhuǎn)和尺度變換
‘a(chǎn)ffine’?在similarity的基礎(chǔ)上加入了shear(圖像的剪輯)

該圖片就是粗配準(zhǔn)的結(jié)果了,大家可以在右上角看到明顯的不重合現(xiàn)象。

三,提高配準(zhǔn)精度
粗配準(zhǔn)的結(jié)果一般情況下達(dá)不到實(shí)際應(yīng)用的要求,為此很有必要進(jìn)一步提高精度,如果有對精度要求不高的朋友看到這里就可以結(jié)束了。

1

2

disp('optimizer');

disp('metric');


這兩條指令可以看到默認(rèn)生成的優(yōu)化器和度量函數(shù)參數(shù),當(dāng)然這里提高精度的途徑就是通過修改這兩個(gè)參數(shù)了!

在這里我們通過修改兩個(gè)參數(shù),觀察對配準(zhǔn)效果的改進(jìn):
(1)改變優(yōu)化器的步長已達(dá)到對更加精細(xì)的變換。

1

2

3

4

optimizer.InitialRadius?=?optimizer.InitialRadius/3.5;

movingRegisteredAdjustedInitialRadius?=?imregister(moving,?fixed,?'affine',?optimizer,?metric);

figure,?imshowpair(movingRegisteredAdjustedInitialRadius,?fixed);

title('Adjusted?InitialRadius');


把原步長縮小為原來的3.5倍,結(jié)果如下

貌似效果還是有點(diǎn)的啊,大家在看右上角的陰影好像不見了
(2)在(1)基礎(chǔ)上改變最大迭代次數(shù)

1

2

3

4

optimizer.MaximumIterations?=?300;

movingRegisteredAdjustedInitialRadius300?=?imregister(moving,?fixed,?'affine',?optimizer,?metric);

figure,?imshowpair(movingRegisteredAdjustedInitialRadius300,?fixed);

title('B:?Adjusted?InitialRadius,?MaximumIterations?=?300,?Adjusted?InitialRadius.');


效果如下:正上的陰影好像也減小了


四,改變初始條件提高精度
這里的思想就像我們在做雕塑一樣,假如我們要用石頭雕一個(gè)人,首先我們可以大刀闊斧的把頭部留出來,然后把脖子留的比頭部更細(xì),簡單的說就是美女留出S輪廓,或者o型的(哈哈,對號入座就可以了),下一步精雕細(xì)琢的時(shí)候就會輕松很多,這里的初始條件就是先用簡單的變換做出一個(gè)初始配準(zhǔn)圖像,然后以初始配準(zhǔn)的結(jié)果作為輸入做精細(xì)配準(zhǔn)。
大致做法如下:

1

tformSimilarity?=?imregtform(moving,fixed,'similarity',optimizer,metric);


用similarity的變換方式做初始配準(zhǔn),或者你還可以用rigid,transform的方式都可以

1

tformSimilarity?=?imregtform(moving,fixed,'similarity',optimizer,metric);


在這里imregtform把變化矩陣輸出;
然后用imref2d限制變換后的圖像與參考圖像有相同的坐標(biāo)分布

1

Rfixed?=?imref2d(size(fixed));


imwarp函數(shù)執(zhí)行幾何變換,當(dāng)然依據(jù)則是tformSimilarity的變換矩陣了。

1

2

3

movingRegisteredRigid?=?imwarp(moving,tformSimilarity,'OutputView',Rfixed);

figure,?imshowpair(movingRegisteredRigid,?fixed);

title('C:?Registration?based?on?similarity?transformation?model.');


得到的tformsimilarity.T就是傳說中的變換矩陣了
tformSimilarity.T=????1.0331???-0.1110?????????0
????????????????????????????????????0.1110????1.0331?????????0
???????????????????????????????????-51.1491????6.9891????1.0000
下面就是精配準(zhǔn)的部分了:

1

2

3

4

movingRegisteredAffineWithIC?=?imregister(moving,fixed,'affine',optimizer,metric,...

????'InitialTransformation',tformSimilarity);

figure,?imshowpair(movingRegisteredAffineWithIC,fixed);

title('D:?Registration?from?affine?model?based?on?similarity?initial?condition.');


初始配準(zhǔn)結(jié)果:
進(jìn)一步精細(xì)配準(zhǔn):

五,到這里就是你說了算了Deciding?When?Enough?is?Enough

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

figure

imshowpair(movingRegisteredDefault,?fixed)

title('A?-?Default?settings.');

?

figure

imshowpair(movingRegisteredAdjustedInitialRadius,?fixed)

title('B?-?Adjusted?InitialRadius,?100?Iterations.');

?

figure

imshowpair(movingRegisteredAdjustedInitialRadius300,?fixed)

title('C?-?Adjusted?InitialRadius,?300?Iterations.');

?

figure

imshowpair(movingRegisteredAffineWithIC,?fixed)

title('D?-?Registration?from?affine?model?based?on?similarity?initial?condition.');


選擇一個(gè)合適的,理想的你想要的結(jié)果。

下面就我自己的采集的圖像就將上面的分析整理成一套完整的代碼,如下:

%%%%%%%%%讀取兩幅圖片,并且比較兩者的不同%%%%%%%%%%%%%%%% moving=imread('175600000005.Tiff'); moving=moving(:,:,1);%要求是單通道圖像,fixed=imread('215600000005.Tiff'); fixed=fixed(:,:,1);figure,imshow(moving,[]); figure,imshowpair(moving,fixed,'falsecolor'); %figure,imshowpair(moving,fixed,'blend'); title('unregiistered'); [optimizer, metric] = imregconfig('multimodal');%參數(shù)modality指定fixed image, moving image之間的關(guān)系,有兩種選擇‘monomodal’, 'multimodal'兩種, %分別質(zhì)量兩幅圖像是單一模態(tài)還是多模態(tài)%%%%%%%%%%%%%粗配準(zhǔn)%%%%%%%%%%%%%%%%%%%%%%%%%%%5 movingRegisteredDefault = imregister(moving, fixed, 'affine', optimizer, metric); %參數(shù)optimizer是用于優(yōu)化度量準(zhǔn)則的優(yōu)化算法,參數(shù)metric則是注明了度量兩幅圖片相似度的方法 %‘similarity’ 改變換包括了平移,旋轉(zhuǎn)和尺度變換,‘a(chǎn)ffine’ 在similarity的基礎(chǔ)上加入了shear(圖像的剪輯) figure, imshowpair(movingRegisteredDefault, fixed); title('A: Default registration');%%%%%%%%%%%%%%%%%精細(xì)配準(zhǔn)%%%%%%%%%%%%%%%%%%5 disp('optimizer'); disp('metric'); optimizer.InitialRadius = optimizer.InitialRadius/3.5;%改變優(yōu)化器的步長已達(dá)到對更加精細(xì)的變換 movingRegisteredAdjustedInitialRadius = imregister(moving, fixed, 'affine', optimizer, metric); figure, imshowpair(movingRegisteredAdjustedInitialRadius, fixed); title('Adjused InitialRadius');optimizer.MaximumIterations = 300;%在上面的基礎(chǔ)上改變最大迭代次數(shù) movingRegisteredAdjustedInitialRadius300 = imregister(moving, fixed, 'affine', optimizer, metric); figure, imshowpair(movingRegisteredAdjustedInitialRadius300, fixed); title('B: Adjusted InitialRadius, MaximumIterations = 300, Adjusted InitialRadius.');%%%%%%%%%%%%另一個(gè)方法:改變初始條件提高精度%%%%%%%%%%%%%%%%%%%tformSimilarity = imregtform(moving,fixed,'similarity',optimizer,metric);%用similarity的變換方式做初始配準(zhǔn),還可以用rigid,transform的方式 Rfixed = imref2d(size(fixed));%imregtform把變化矩陣輸出;然后用imref2d限制變換后的圖像與參考圖像有相同的坐標(biāo)分布 movingRegisteredRigid = imwarp(moving,tformSimilarity,'OutputView',Rfixed);%imwarp函數(shù)執(zhí)行幾何變換,依據(jù)則是tformSimilarity的變換矩陣。 figure, imshowpair(movingRegisteredRigid, fixed); title('C: Registration based on similarity transformation model.');%%%%%%%接下來精準(zhǔn)配準(zhǔn)%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% movingRegisteredAffineWithIC = imregister(moving,fixed,'affine',optimizer,metric,...'InitialTransformation',tformSimilarity); figure, imshowpair(movingRegisteredAffineWithIC,fixed); title('D: Registration from affine model based on similarity initial condition.');%%%%%%%%%%%%%%%總結(jié)對比以上4中方法輸出結(jié)果,AC效果相當(dāng),BD效果相當(dāng),最精確配準(zhǔn)%%%%%%%%%%% % figure % imshowpair(movingRegisteredDefault, fixed) % title('A - Default settings.'); % % figure % imshowpair(movingRegisteredAdjustedInitialRadius, fixed) % title('B - Adjusted InitialRadius, 100 Iterations.'); % % figure % imshowpair(movingRegisteredAdjustedInitialRadius300, fixed) % title('C - Adjusted InitialRadius, 300 Iterations.'); % % figure % imshowpair(movingRegisteredAffineWithIC, fixed) % title('D - Registration from affine model based on similarity initial condition.');

?

總結(jié)

以上是生活随笔為你收集整理的如何实现图像间精确配准(matlab)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美50p| 亚洲美女性视频 | 日韩av在线免费播放 | 久久尤物视频 | 免费在线国产精品 | 日日骑夜夜操 | 性巴克成人免费网站 | 一级特级毛片 | 外国黄色网址 | 国产精品9999 | 色大师在线观看 | 日韩中文字幕一区二区三区 | 艳妇臀荡乳欲伦交换gif | 亚洲xxxx天美 | 午夜精品久久久久久久久久久久久 | 国产在线播放一区二区 | 国产精品短视频 | 欧美在线播放视频 | 香蕉视频在线观看免费 | 成年女人色毛片 | 日韩一二三四区 | 久久一级黄色片 | 99这里| 亚洲精品国产手机 | 国产免费网址 | 伊人婷婷久久 | 亚洲人网 | 香蕉av777xxx色综合一区 | 草莓视频18免费观看 | 无码日本精品xxxxxxxxx | 亚洲视频在线观看网站 | 51ⅴ精品国产91久久久久久 | 国产激情免费 | 性开放视频 | 在线免费观看a级片 | 亚洲精品国产精品乱码在线观看 | 美女靠逼app| 亚洲精品电影在线观看 | 91成人在线免费视频 | 国产成人午夜高潮毛片 | 刘亦菲毛片一区二区三区 | 国产乱人乱精一区二视频国产精品 | 免费看污视频的网站 | 精品国产露脸精彩对白 | 性色av蜜臀av | 亚洲色图综合网 | 久久精品这里有 | 黄色一级片黄色一级片 | 香港一级淫片免费放 | 日本护士取精xxxxxhd | 亚洲天堂手机在线 | 好男人www社区在线视频夜恋 | 日韩一区二区av | 亚洲欧美日韩成人在线 | 美女扒开内裤让男人捅 | 精品综合久久久 | 亚洲第一区av | 91久色视频 | 亚洲精品自拍偷拍 | 超碰最新在线 | 91干| 农村妇女av | 嫩模一区二区三区 | 日本色呦呦 | 美女扒开腿男人爽桶 | 亚洲av无码专区在线 | 99re色 | 免费无码肉片在线观看 | 91av视频在线免费观看 | 免费观看美女裸体网站 | 日韩精品第三页 | 一区二区成人精品 | 免费黄色美女网站 | 91尤物国产福利在线观看 | 公侵犯人妻中文字慕一区二区 | 波多野结衣喷潮 | 超污视频软件 | 亚洲一区二区偷拍 | 91 色 | 人妻精品无码一区二区 | 亚洲第一精品在线观看 | 一区三区在线观看 | 亚洲精品日韩丝袜精品 | 国产精品久久99 | 白丝美女被草 | 齐天大性床战铁扇公主 | 日本不卡视频一区二区 | 国产综合在线观看 | 成人免费毛片视频 | 激情四射婷婷 | 国产精品suv一区二区 | 又白又嫩毛又多15p 超碰在线一区 | 国产一区二区小视频 | 欧美最顶级a∨艳星 | 蜜桃av中文字幕 | 依人综合 | 日韩一道本 | 亚洲一区二区视频在线 | 久色91 |