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

歡迎訪問 生活随笔!

生活随笔

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

循环神经网络

matlab 线性插值缩放图片,双线性插值实现图像放大(Matlab实现)

發布時間:2023/12/20 循环神经网络 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 matlab 线性插值缩放图片,双线性插值实现图像放大(Matlab实现) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

二、實現

1. ?實驗平臺與數據

本算法使用Matlab語言實現,實驗平臺為Windows 8 32位操作系統、4GB內存(可用為2.31GB)、Matlab2013b。

數據1: 大小為:256*256 的lena灰度圖像,將使用實現的算法對其進行2倍放大操作,如下圖1所示:

圖1 灰度圖像lena.png

數據2:大小為:670*502 的彩色RGB圖像,將使用實現的算法對其進行2倍縮小操作,如下圖1所示:

圖2彩色RGB圖像he.jpeg

2. ?實驗程序源代碼

imblizoom.m文件源碼

function [ ZI ] = imblizoom( I,zmf )

%----------------------雙線性插值法縮放矩陣或圖像---------------------------

% Input:

%?????? I:圖像文件名或矩陣(整數值(0~255))

%?????? zmf:縮放因子,即縮放的倍數

% Output:

%縮放后的圖像矩陣ZI

% Usage:

%?????? ZI = SSELMHSIC('ImageFileName',zmf)

%對圖像I進行zmf倍的縮放并顯示

%??? Or:

%?????? ZI = SSELMHSIC(I,zmf)

%對矩陣I進行zmf倍的縮放并顯示

%??? ...

%-------------------------------------------------------------------

%%%%??? Authors:???Zhi Liu

%%%%??? XiDian University Student

%%%% ???EMAIL:?????zhiliu.mind@gmail.com

%%%%??? DATE:??????16-12-2013

%% Step1對數據進行預處理

if ~exist('I','var') || isempty(I)

error('輸入圖像I未定義或為空!');

end

if ~exist('zmf','var') || isempty(zmf) || numel(zmf) ~= 1

error('位移矢量zmf未定義或為空或zmf中的元素超過2!');

end

if isstr(I)

[I,M] = imread(I);

end

if zmf <= 0

error('縮放倍數zmf的值應該大于0!');

end

%% Step2通過原始圖像和縮放因子得到新圖像的大小,并創建新圖像。

[IH,IW,ID] = size(I);

ZIH = round(IH*zmf); %計算縮放后的圖像高度,最近取整

ZIW = round(IW*zmf); %計算縮放后的圖像寬度,最近取整

ZI = zeros(ZIH,ZIW,ID); % 創建新圖像

%% Step3擴展矩陣I邊緣

IT = zeros(IH+2,IW+2,ID);

IT(2:IH+1,2:IW+1,:) = I;

IT(1,2:IW+1,:)=I(1,:,:);IT(IH+2,2:IW+1,:)=I(IH,:,:);

IT(2:IH+1,1,:)=I(:,1,:);IT(2:IH+1,IW+2,:)=I(:,IW,:);

IT(1,1,:) = I(1,1,:);IT(1,IW+2,:) = I(1,IW,:);

IT(IH+2,1,:) = I(IH,1,:);IT(IH+2,IW+2,:) = I(IH,IW,:);

%% Step4由新圖像的某個像素(zi,zj)映射到原始圖像(ii,jj)處,并插值。

for zj = 1:ZIW???????? %對圖像進行按列逐元素掃描

for zi = 1:ZIH

ii = (zi-1)/zmf; jj = (zj-1)/zmf;

i = floor(ii); j = floor(jj); %向下取整

u = ii - i; v = jj - j;

i = i + 1; j = j + 1;

ZI(zi,zj,:) = (1-u)*(1-v)*IT(i,j,:) +(1-u)*v*IT(i,j+1,:)...

+ u*(1-v)*IT(i+1,j,:) +u*v*IT(i+1,j+1,:);

end

end

ZI = uint8(ZI);

%%以圖像的形式顯示同現矩陣P

figure

imshow(I,M);

axis on

title(['原圖像(大小:',num2str(IH),'*',num2str(IW),'*',num2str(ID),')']);

figure

imshow(ZI,M);

axis on

title(['縮放后的圖像(大小:',num2str(ZIH),'*',num2str(ZIW),'*',num2str(ID)',')']);

end

3. ?實驗結果

1) 數據1

在命令窗口輸入imblizoom('lena.png', 2);回車后結果如下圖3和下圖4所示:

圖3 lena.png的運行結果1(原圖)

圖4 lena.png的運行結果2(放大2倍后的圖)

2)數據2

圖5 he.jpeg運行結果1(原圖)

圖6 he.jpeg運行結果2(縮小2倍后的圖像)

由圖3~圖6可知,程序正確無誤,放大縮小后的效果都很好。程序的用法及其它功能,請查看代碼注釋。

總結

以上是生活随笔為你收集整理的matlab 线性插值缩放图片,双线性插值实现图像放大(Matlab实现)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。