打字猴:1.70101027e+09
1701010270
1701010271     function xresult = kgrads(x,d)    %计算梯度, d=‘h’,检测行与行之间,即列方向上的差异(梯度),即水平的边缘    if ndims(x)==3                           %判断x的维数        xresult = zeros(size(x,2),size(x,3));        xresult(:) = x(:);                  %赋值        x = xresult;         elseif ndims(x)==4        xresult = zeros(size(x,3),size(x,4));        xresult(:) = x(:);        x = xresult;    else        xresult = x;    end    [row,col] = size(x);    blocks = 3;                                    %3x3大小窗口差分的平方和        %计算差分    if d==‘v’         for r=1:row             for c=1:(col-1)                xresult(r,c) = (xresult(r,c) - xresult(r,c+1))^2;                                        %列与列之间,即行方向上的差异            end            xresult(r,col) = xresult(r,col-1);        end    else        for c=1:col            for r=1:(row-1)                xresult(r,c) = (xresult(r,c) - xresult(r+1,c))^2;                                        %行与行之间,即列方向上的差异            end            xresult(row,c) = xresult(row-1,c);        end    end        patch = (blocks-1)/2;    xx = zeros(row+patch*2,col+patch*2);                               %初始化    xx((patch+1):(row+patch),(patch+1):(col+patch)) = xresult(:,:);    %赋值        for r=1:row        for c=1:col            s_grads = 0;            for rr=r:(r+patch*2)                for cc=c:(c+patch*2)                                   s_grads = s_grads + xx(rr,cc);                      %计算梯度                end            end            xresult(r,c) = s_grads;        end    end
1701010272
1701010273 运行程序输出图形如图9-4所示。
1701010274
1701010275
1701010276
1701010277
1701010278 图9-4 还原后的图像
1701010279
1701010280 如图9-4所示为还原后的图像,由图可知,该还原效果是极好的,能够逼真的再现真实的工况,采用计算机程序设计能够完成批量的图像处理,大大的提高图像融合效率,特别对于探月工程而言,月球车拍回一系列图像,怎么融合这些图像为一幅完整的图像显得很关键,因此图像融合技术起到很关键的作用。
1701010281
1701010282
1701010283
1701010284
1701010285 我和数学有约:趣味数学及算法解析 [:1701004271]
1701010286 我和数学有约:趣味数学及算法解析 9.4 左眼到右眼的距离究竟多远
1701010287
1701010288 有时候真觉得自己的眼睛看见的总不是那么真实,如海市蜃楼和3D电影等,仿佛一切都触手可及,然而当我们真正去感知时,才发现很多事物本身没那么简单,我们见到的并不是我们想的那样,这一切归因于什么呢?都是我们的眼睛惹的祸。因为我们对自己左右眼的真实距离都无法度量。
1701010289
1701010290 【问题】左眼到右眼的距离究竟有多远?
1701010291
1701010292 【分析】
1701010293
1701010294 左眼到右眼的距离,我们都觉得很简单,直接测测就知道了,然而如果事物真的都能采取如此简化的方法,则人类的航空航天估计注定是失败的。人类在追求成功的同时,更注重对事物的精准度度量。
1701010295
1701010296 两眼最短距离,能不能直接使用两点之间距离最短来度量呢?两眼之间的直线距离,这也是我们常用的距离,然而采用直线距离计算是否合理呢?
1701010297
1701010298 对于一幅图像本身,一幅灰度图像就是二维平面的灰度值集合,本设计中采用左眼点[48,64],右眼点[71,62],进行图像标记,如图9-5所示,左右眼标记程序设计如下:
1701010299
1701010300     %%左眼[48,64],右眼[71,62]    figure(‘color’,[1,1,1])                   %设置图像背景为白色    imshow(background,[])                     %显示图像    hold on                                   %保持句柄    plot(48,64,‘r.’,‘Markersize’,20)          %画图    plot(71,62,‘r.’,‘Markersize’,20)          %画图
1701010301
1701010302
1701010303
1701010304
1701010305 图9-5 二维图像左右眼标记
1701010306
1701010307 反应到3D曲面上,进行左右眼标记,采用左眼点[20,16,105],右眼点[13,16,72],进行三维曲面标记,MATLAB程序如下:
1701010308
1701010309     %%surf,左眼[20,16,105],右眼[13,16,72]    figure(‘color’,[1,1,1])                    %设置图像背景为白色    mesh(background(1:4:end,1:4:end))          %绘制曲面图    zlim([0 256]);                             %z设置    hold on                                    %保持句柄    plot3(20,16,105,‘r.’,‘Markersize’,50)      %画图    plot3(13,16,72,‘g.’,‘Markersize’,50)    set(gca,‘Xdir’,‘reverse’);                 %设置x轴反向    set(gca,‘Ydir’,‘reverse’);                 %设置y轴反向    box on;grid off                            %显示图形盒子边框,消除网格化
1701010310
1701010311 运行程序输出图形如图9-6所示。
1701010312
1701010313
1701010314
1701010315
1701010316 图9-6 3D曲面左右眼标记
1701010317
1701010318 如图9-5和图9-6所示的图像中两眼位置,计算两眼之间的距离,那么两眼之间的距离究竟有多远?
1701010319
[ 上一页 ]  [ :1.70101027e+09 ]  [ 下一页 ]