亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? index.html

?? 信號處理系列導航
?? HTML
?? 第 1 頁 / 共 2 頁
字號:
<!DOCTYPE html  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"><html xmlns:mwsh="http://www.mathworks.com/namespace/mcode/v1/syntaxhighlight.dtd">   <head>      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">         <!--This HTML is auto-generated from an M-file.To make changes, update the M-file and republish this document.      -->      <title>Reconstruction from Partial Tomography Measurements</title>      <meta name="generator" content="MATLAB 7.4">      <meta name="date" content="2008-10-17">      <meta name="m-file" content="index">      <LINK REL="stylesheet" HREF="style.css" TYPE="text/css">   </head>   <body>      <div class="content">         <h1>Reconstruction from Partial Tomography Measurements</h1>         <introduction>            <p>This numerical tour explores the reconstruction from tomographic measurement with TV regularization.</p>         </introduction>         <h2>Contents</h2>         <div>            <ul>               <li><a href="#1">Installing toolboxes and setting up the path.</a></li>               <li><a href="#8">Tomography and Radon Transform</a></li>               <li><a href="#15">Tomography Acquisition over the Fourier Domain</a></li>               <li><a href="#21">TV Reconstruction from Partial Tomoraphic Measurements</a></li>            </ul>         </div>         <h2>Installing toolboxes and setting up the path.<a name="1"></a></h2>         <p>You need to download the <a href="../toolbox_general.zip">general purpose toolbox</a> and the <a href="../toolbox_signal.zip">signal toolbox</a>.         </p>         <p>You need to unzip these toolboxes in your working directory, so that you have <tt>toolbox_general/</tt> and <tt>toolbox_signal/</tt> in your directory.         </p>         <p><b>For Scilab user:</b> you must replace the Matlab comment '%' by its Scilab counterpart '//'.         </p>         <p><b>Recommandation:</b> You should create a text file named for instance <tt>numericaltour.sce</tt> (in Scilabe) or <tt>numericaltour.m</tt> to write all the Scilab/Matlab command you want to execute. Then, simply run <tt>exec('numericaltour.sce');</tt> (in Scilab) or <tt>numericaltour;</tt> (in Matlab) to run the commands.         </p>         <p>Execute this line only if you are using Matlab.</p><pre class="codeinput">getd = @(p)path(path,p); <span class="comment">% scilab users must *not* execute this</span></pre><p>Then you can add these toolboxes to the path.</p><pre class="codeinput"><span class="comment">% Add some directories to the path</span>getd(<span class="string">'toolbox_signal/'</span>);getd(<span class="string">'toolbox_general/'</span>);</pre><h2>Tomography and Radon Transform<a name="8"></a></h2>         <p>The Radon transform compute the integral of the image along all the lines in the plane.</p>         <p>Load the phantom image</p><pre class="codeinput">n = 256;M = load_image(<span class="string">'phantom'</span>,n);M = rescale(M,.08,.92);</pre><p>In practice, only a limited number of orientation and intecept are retained.</p><pre class="codeinput"><span class="comment">% number of orientation</span>ntheta = round(sqrt(2)*n);<span class="comment">% orientations in [0,pi]</span>theta = linspace(0,180,ntheta+1); theta(ntheta+1) = [];</pre><p>Now we compute the radon transform. Each <tt>R(i,j)</tt> measure the integral along a ray of angle <tt>theta(j)</tt>, with an intercept parameterized by <tt>i</tt>.         </p><pre class="codeinput">R = radon(M,theta);<span class="comment">% display</span>clf;imageplot(M, <span class="string">'Image'</span>, 1,2,1);imageplot(R, <span class="string">'Radon transform'</span>, 1,2,2);</pre><img vspace="5" hspace="5" src="index_01.png"> <p>In practice, the reconstruction is performed using only a limitted number of projections. Since there is many possible inverse            for these partial measurements, the reconstruction is performed with a pseudo inverse. This pseudo-inverse is implemented            in a stable and fast maner with filtered back-projection.         </p><pre class="codeinput"><span class="comment">% number of projections</span>nproj = 32;<span class="comment">% selected angles for inversion</span>sel = round(linspace(1,ntheta+1,nproj+1)); sel(nproj+1) = [];<span class="comment">% inversion with back projection</span>M1 = iradon(R(:,sel), theta(sel));<span class="comment">% display</span>clf;imageplot(M, <span class="string">'Image'</span>, 1,2,1);imageplot(clamp(M1), <span class="string">'Reconstruction'</span>, 1,2,2);</pre><img vspace="5" hspace="5" src="index_02.png"> <p>The pseudo inverse corresponds to imposing the value of the Fourier transform of the reconstruction only about 1D lines that            are orthogonal to the angle used for the Radon transform.         </p><pre class="codeinput"><span class="comment">% Fourier transform, orthogonal</span>F = fftshift(fft2(M))/n;F1 = fftshift(fft2(M1))/n;<span class="comment">% display</span>eta = 1e-1;clf;imageplot(log(eta+abs(F)), <span class="string">'Fourier transform of the image'</span>, 1,2,1);imageplot(log(eta+abs(F1)), <span class="string">'Fourier transform of the reconstruction'</span>, 1,2,2);</pre><img vspace="5" hspace="5" src="index_03.png"> <p><i>Exercice 1:</i> (the solution is <a href="../private/inverse_tomography/exo1.m">exo1.m</a>) Perform a reconstruction with an increasing number of angles, and display the reconstruction error.         </p><pre class="codeinput">exo1;</pre><img vspace="5" hspace="5" src="index_04.png"> <h2>Tomography Acquisition over the Fourier Domain<a name="15"></a></h2>         <p>The tomography measurement with a Randon transform is equivalent, over the Fourier domain, to a sub-sampling along rays.</p>         <p>Set the number of rays used for the experiments.</p><pre class="codeinput">nrays = 18;</pre><p>For a given number of rays, we build the mask that perform the sub-sampling.</p><pre class="codeinput">Theta = linspace(0,pi,nrays+1); Theta(end) = [];mask = zeros(n);<span class="keyword">for</span> theta = Theta    t = linspace(-1,1,3*n)*n;    x = round(t.*cos(theta)) + n/2+1; y = round(t.*sin(theta)) + n/2+1;    I = find(x&gt;0 &amp; x&lt;=n &amp; y&gt;0 &amp; y&lt;=n); x = x(I); y = y(I);    mask(x+(y-1)*n) = 1;<span class="keyword">end</span></pre><p>We display the mask and the masked Fourier transform</p><pre class="codeinput"><span class="comment">% Fourier transform, orthogonal</span>F = fftshift(fft2(M)/n);<span class="comment">% display</span>clf;imageplot(mask, <span class="string">'Fourier mask'</span>, 1,2,1);imageplot( log( eta + abs(mask.*F) ), <span class="string">'Masked frequencies'</span>, 1,2,2);</pre><img vspace="5" hspace="5" src="index_05.png"> <p>Tomographic measurement can thus be intepreted as a selection of a few Fourier frequencies.</p><pre class="codeinput"><span class="comment">% selection operator M-&gt;y</span>F = fftshift(fft2(M)/n);y = F(mask==1);<span class="comment">% number of measures</span>Q = length(y);disp(strcat([<span class="string">'Number of measurements Q='</span> num2str(Q) <span class="string">'.'</span>]));disp(strcat([<span class="string">'Sub-sampling Q/N='</span> num2str(length(y)/n^2,2) <span class="string">'.'</span>]));</pre><pre class="codeoutput">Number of measurements Q=5359.Sub-sampling Q/N=0.082.</pre><p>The transposed operator corresponds to the pseudo inverse reconstruction (because the measurement operator is in fact an orthogonal            projection). It is similar to the filtered back-projection (excepted that the Fourier sub-sampling is now on a discrete grid,            which is not really faithful to the geometry of tomographic acquisition).         </p><pre class="codeinput">F1 = zeros(n);F1(mask==1) = y;M1 = real( ifft2( fftshift(F1)*n ) );<span class="comment">% display</span>clf;imageplot(M, <span class="string">'Original image'</span>, 1,2,1);imageplot(clamp(M1), <span class="string">'Pseudo inverse reconstruction'</span>, 1,2,2);</pre><img vspace="5" hspace="5" src="index_06.png"> <h2>TV Reconstruction from Partial Tomoraphic Measurements<a name="21"></a></h2>         <p>Since the Phantom image is a cartoon image, it makes sense to perform the reconstruction while minimizing the TV norm of the            image.         </p>         <p>Here we deal with noisy measurements.</p><pre class="codeinput">F = fftshift(fft2(M)/n);<span class="comment">% noise level</span>sigma = .03;<span class="comment">% selection operator M-&gt;y</span>y = F(mask==1) + sigma*randn(Q,1);</pre><p>The reconstruction is performed using the following TV minimization</p>         <p><tt>min_{Mtv} norm(Tomography(Mtv)-y)^2 + lambda*normTV(Mtv)</tt>  (*)         </p><pre> Where |Tomography(.)| is the Fourier tomographic sub-sampling operator. The parameter |lambda| is optimized so that the solution satisfies</pre><p><tt>norm(Tomography(Mtv)-y)&lt;sqrt(Q)*sigma</tt>  (**)         </p><pre> where |Q| is the number of measurements, and |sigma| is the noise level per measure.</pre><p>The minimization of (*) is performed by iterating between a gradient descent step of the energy <tt>norm(Tomography(Mtv)-y)^2</tt>, and Chambolle's algorithm to minimize the TV norm.         </p>         <p>For more details about Chambolle's algorithm, see the numerical tour on TV minimization.</p>         <p>Initialization</p><pre class="codeinput">Mtv = zeros(n);<span class="comment">% regularization parameter</span>lambda = .1;<span class="comment">% vector field for Chambolle's algorithm</span>G = zeros(n,n,2);</pre><p>The first step corresponds to a projection on the measurement constraints. This corresponds in fact to the pseudo inverse            solution.         </p><pre class="codeinput">Ftv = fftshift(fft2(Mtv)/n);Ftv(mask==1) = y;M1 = real(ifft2( fftshift(Ftv*n) ));Mpseudo = M1;</pre><p>The second step corresponds to several steps of Chambolle's algorithm to minimize the TV norm of <tt>M1</tt>, using a fixed <tt>lambda</tt>.         </p><pre class="codeinput"><span class="comment">% descent step in Chambolle's method</span>tau = 1/4;<span class="comment">% number of sub-iterations for Chambolle's method</span>niter_chambolle = 20;<span class="comment">% tolerance for early stop</span>tol = 1e-5;<span class="keyword">for</span> i=1:niter_chambolle    <span class="comment">% gradient of the energy</span>    dG = grad( div(G) - M1/lambda );    <span class="comment">% gradient descent</span>    G = G + tau*dG;    <span class="comment">% projection on Linfty constraints</span>    d = repmat( sqrt(sum(G.^2,3)), [1 1 2] ); <span class="comment">% norm of the vectors</span>    G = G ./ max(d,1);    <span class="comment">% reconstruct</span>    MtvOLD = Mtv;    Mtv = M1 - lambda*div(G);    <span class="comment">% check for early stop if no improvement is being made</span>    <span class="keyword">if</span> norm(Mtv-MtvOLD, <span class="string">'fro'</span>)/norm(M1,<span class="string">'fro'</span>)&lt;tol        <span class="keyword">break</span>;    <span class="keyword">end</span><span class="keyword">end</span></pre><p>The last step is an update of the <tt>lambda</tt> parameter to match the error constraints.         </p><pre class="codeinput"><span class="comment">% measures</span>Ftv = fftshift(fft2(Mtv)/n);y1 = Ftv(mask==1);<span class="comment">% update</span>lambda = lambda * sqrt(Q)*sigma / norm( y-y1, <span class="string">'fro'</span> );</pre><p><i>Exercice 2:</i> (the solution is <a href="../private/inverse_tomography/exo2.m">exo2.m</a>) Put these three steps together in an iterative algorithm that reconstruction from the tomographic measurements by solving            the TV minimization.         </p><pre class="codeinput">exo2;</pre><img vspace="5" hspace="5" src="index_07.png"> <p>Display</p><pre class="codeinput">clf;imageplot(clamp(Mpseudo), strcat([<span class="string">'Pseudo inverse, SNR='</span> num2str(snr(M,Mpseudo),3) <span class="string">'dB'</span>]), 1,2,1);imageplot(clamp(Mtv), strcat([<span class="string">'TV, SNR='</span> num2str(snr(M,Mtv),3) <span class="string">'dB'</span>]), 1,2,2);</pre><img vspace="5" hspace="5" src="index_08.png"> <p class="footer"><br>            Copyright  &reg; 2008 Gabriel Peyre<br></p>      </div>      <!--##### SOURCE BEGIN #####%% Reconstruction from Partial Tomography Measurements% This numerical tour explores the reconstruction from tomographic% measurement with TV regularization.%% Installing toolboxes and setting up the path.%%% You need to download the % <../toolbox_general.zip general purpose toolbox>% and the <../toolbox_signal.zip signal toolbox>.%%% You need to unzip these toolboxes in your working directory, so% that you have |toolbox_general/| and |toolbox_signal/| in your% directory.%%% *For Scilab user:* you must replace the Matlab comment '%' by its Scilab% counterpart '//'.%%% *Recommandation:* You should create a text file named for instance% |numericaltour.sce| (in Scilabe) or |numericaltour.m| to write all the% Scilab/Matlab command you want to execute. Then, simply run% |exec('numericaltour.sce');| (in Scilab) or |numericaltour;| (in Matlab)% to run the commands. %%% Execute this line only if you are using Matlab.getd = @(p)path(path,p); % scilab users must *not* execute this%%% Then you can add these toolboxes to the path.% Add some directories to the pathgetd('toolbox_signal/');getd('toolbox_general/');%% Tomography and Radon Transform% The Radon transform compute the integral of the image along all the lines% in the plane. %%% Load the phantom imagen = 256;M = load_image('phantom',n);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区日韩欧美精品| 国产欧美精品一区| 夜夜精品视频一区二区 | 91精品在线观看入口| 一级日本不卡的影视| 欧美视频三区在线播放| 亚洲www啪成人一区二区麻豆 | 91精品国产综合久久小美女| 婷婷开心激情综合| 日韩一级黄色大片| 国产精品一区二区在线观看不卡| 中文一区一区三区高中清不卡| 99久久久国产精品免费蜜臀| 一区二区三区丝袜| 欧美一区二区美女| 国产成人免费视| 亚洲狠狠丁香婷婷综合久久久| 在线成人午夜影院| 国产一区二区不卡在线| 一区二区在线观看视频| 欧美老人xxxx18| 国产精品一级片在线观看| 亚洲欧美中日韩| 4438x亚洲最大成人网| 国产麻豆日韩欧美久久| 亚洲男人的天堂在线观看| 欧美精品在线观看一区二区| 国产精品亚洲第一| 玉米视频成人免费看| 久久综合资源网| 在线视频国内自拍亚洲视频| 国产伦理精品不卡| 亚洲免费成人av| 337p粉嫩大胆噜噜噜噜噜91av| 99在线精品观看| 久久99国产精品麻豆| 亚洲精品国产一区二区精华液| 日韩欧美黄色影院| 色综合视频在线观看| 精品综合久久久久久8888| 亚洲精品你懂的| 国产人成一区二区三区影院| 欧美日韩和欧美的一区二区| 成人综合在线观看| 人人爽香蕉精品| 亚洲人成精品久久久久久| 日韩三级电影网址| 色综合 综合色| 国产激情一区二区三区桃花岛亚洲| 亚洲18色成人| 伊人夜夜躁av伊人久久| 欧美—级在线免费片| 日韩一区二区中文字幕| 91久久国产最好的精华液| 国产精品99久久久久久似苏梦涵 | 欧美激情在线一区二区| 日韩丝袜情趣美女图片| 欧美亚男人的天堂| 97se狠狠狠综合亚洲狠狠| 国产精品一区二区男女羞羞无遮挡| 婷婷开心激情综合| 五月激情综合色| 亚洲一区在线观看网站| 亚洲码国产岛国毛片在线| 国产女同性恋一区二区| 久久亚洲一级片| 亚洲精品在线电影| 制服丝袜中文字幕一区| 8v天堂国产在线一区二区| 欧美三级中文字幕在线观看| 日本高清视频一区二区| 色综合婷婷久久| 久久一区二区三区四区| 日韩午夜中文字幕| 在线综合视频播放| 欧美高清一级片在线| 精品视频在线视频| 欧洲国内综合视频| 欧美少妇性性性| 欧美亚洲自拍偷拍| 欧美日韩一区视频| 91麻豆精品91久久久久久清纯| 欧美日韩成人在线一区| 欧美日韩国产另类一区| 欧美精品在线观看播放| 日韩免费电影一区| 久久综合成人精品亚洲另类欧美 | 亚洲午夜日本在线观看| 午夜一区二区三区在线观看| 午夜电影网一区| 久久精品国产在热久久| 国产精品一区一区三区| 国产99久久久精品| 色婷婷av一区二区三区软件| 欧美午夜影院一区| 欧美一区二区高清| 久久精品亚洲精品国产欧美 | 欧美国产国产综合| 中文字幕一区二| 亚洲图片有声小说| 久久精品国产亚洲高清剧情介绍| 国产老女人精品毛片久久| 成人av在线一区二区三区| 色吧成人激情小说| 日韩一区二区三区免费观看| 久久久国产午夜精品| 亚洲色图视频网| 老司机免费视频一区二区| 成人免费视频网站在线观看| 一本到高清视频免费精品| 日韩免费在线观看| 国产精品你懂的| 三级不卡在线观看| 国产真实乱子伦精品视频| 99re这里只有精品6| 制服视频三区第一页精品| 久久久精品中文字幕麻豆发布| 一色桃子久久精品亚洲| 婷婷六月综合网| 99国产欧美另类久久久精品| 51久久夜色精品国产麻豆| 中文字幕一区二区在线播放| 免费国产亚洲视频| 色天天综合色天天久久| 亚洲精品一区二区三区精华液| 一区二区在线电影| 国产成人精品一区二区三区网站观看| 欧美无砖专区一中文字| 国产清纯美女被跳蛋高潮一区二区久久w| 自拍偷拍亚洲欧美日韩| 久久97超碰国产精品超碰| 在线观看日产精品| 国产精品久久久久9999吃药| 麻豆精品视频在线观看视频| 91视频精品在这里| 久久免费精品国产久精品久久久久| 亚洲一区二区高清| eeuss鲁片一区二区三区在线看| 欧美一区二区三区小说| 一区二区三区欧美在线观看| 国产suv精品一区二区三区| 精品国精品自拍自在线| 亚洲国产裸拍裸体视频在线观看乱了| 国产高清一区日本| 日韩精品在线一区| 肉丝袜脚交视频一区二区| 色婷婷久久一区二区三区麻豆| 国产拍欧美日韩视频二区| 精品在线免费观看| 欧美一区三区二区| 香蕉影视欧美成人| 欧美图片一区二区三区| 亚洲婷婷国产精品电影人久久| 国产精品综合二区| 欧美变态凌虐bdsm| 美日韩一区二区三区| 欧美狂野另类xxxxoooo| 亚洲欧美国产毛片在线| 北条麻妃一区二区三区| 欧美韩国一区二区| 国产精品一区二区在线看| 久久青草国产手机看片福利盒子| 精品一区二区成人精品| 日韩精品在线一区| 国产综合久久久久久鬼色| 日韩免费福利电影在线观看| 美女一区二区三区| 日韩免费一区二区| 久久99精品国产麻豆婷婷洗澡| 欧美电影免费观看高清完整版在线观看 | 中文字幕精品在线不卡| 国产成人精品午夜视频免费| 国产农村妇女精品| 不卡欧美aaaaa| 亚洲视频在线观看三级| 色婷婷亚洲综合| 亚洲成人久久影院| 91麻豆精品国产自产在线| 日本美女一区二区| 精品久久人人做人人爱| 国产成人精品亚洲777人妖| 国产精品福利一区| 色婷婷国产精品| 首页国产欧美久久| 日韩你懂的在线播放| 国产精品一二三区| 中文字幕日本乱码精品影院| 在线观看av不卡| 日本不卡免费在线视频| 国产日韩欧美不卡| 97久久超碰国产精品| 亚洲一二三区在线观看| 欧美一区二区三区爱爱| 国产宾馆实践打屁股91| 亚洲综合在线免费观看| 欧美一级片免费看| 高清shemale亚洲人妖| 一区二区三区四区视频精品免费| 欧美日韩成人综合天天影院| 韩日av一区二区|