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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

图像像素灰度内插(Matlab实现)

發布時間:2024/4/13 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 图像像素灰度内插(Matlab实现) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

常用的像素灰度內插法:最近鄰元法、雙線性內插法、三次內插法

%%像素灰度內插 factor = 0.75;%縮放比 u = 0.6;v = 0.7; itp1 = uint8(zeros(ceil(h/factor),ceil(w/factor))); itp2 = uint8(zeros(ceil(h/u),ceil(w/v))); itp3 = uint8(zeros(ceil(h/u),ceil(w/v)));

下述的J3為待插值灰度圖像,itp為插值圖像

1.最近鄰元法

???????? 在待求像素的四鄰像素中,將距離這點最近的鄰像素灰度賦給待求像素。

%最近鄰元法for i = 1:h/factorfor j = 1:w/factoritp1(i,j) = J3(floor(i*factor+0.5),floor(j*factor+0.5));endend

2.雙線性內插法

%雙線性內插法 for i = 2:h/u-1for j = 2:w/v-1itp2(i,j) = (1-(i*u-floor(i*u)))*(1-(j*v-floor(j*v)))*J3(floor(i*u),floor(j*v))...+(1-(i*u-floor(i*u)))*(j*v-floor(j*v))*J3(floor(i*u),floor(j*v)+1)...+(i*u-floor(i*u))*(1-(j*v-floor(j*v)))*J3(floor(i*u)+1,floor(j*v))...+(i*u-floor(i*u))*(j*v-floor(j*v))*J3(floor(i*u)+1,floor(j*v)+1); end end

3.三次內插法

function [f] = S(x)
if (0<=abs(x))&&(abs(x)<1)
??? f = 1-2*(abs(x))^2+(abs(x))^3;
elseif (1<=abs(x))&&(abs(x)<2)
??? f = 4-8*abs(x)+5*(abs(x))^2-(abs(x))^3;
else
??? f = 0;
end
end


%三次內插法 f = double(J3); u = 0.6;v = 0.7; for i = ceil(2/u):h/u-2for j = ceil(2/v):w/v-2A = [S(1+(j*v-floor(j*v))) S((j*v-floor(j*v))) S(1-(j*v-floor(j*v))) S(2-(j*v-floor(j*v)))];C = [S(1+(i*u-floor(i*u)));S((i*u-floor(i*u)));S(1-(i*u-floor(i*u)));S(2-(i*u-floor(i*u)))];i1 = floor(i*u); j1 = floor(j*v);B = [f(i1-1,j1-1) f(i1-1,j1) f(i1-1,j1+1) f(i1-1,j1+2);f(i1,j1-1) f(i1,j1) f(i1,j1+1) f(i1,j1+2);f(i1+1,j1-1) f(i1+1,j1) f(i1+1,j1+1) f(i1+1,j1+2);f(i1+2,j1-1) f(i1+2,j1) f(i1+2,j1+1) f(i1+2,j1+2);];itp3(i,j) = A*B*C;end end

?

上述的內插法處理的結果出現了黑邊,可以通過將黑邊區域賦予原始圖像的對應區域的像素灰度值。

可通過以下循環實現。

%去黑邊
[m,n] = size(J3);%原始圖像的行列數
for i = 1:floor(1/u) for j = 1:floor(n/v)itp(i,j) = J3(ceil(i*u),ceil(j*v));itp(floor(m/u),j) = J3(m,ceil(j*v));endendfor j = 1:floor(1/v)for i = 1:floor(m/u)itp(i,j) = J3(ceil(i*u),ceil(j*v));itp(i,floor(n/v)) = J3(ceil(i*u),n);endend

?

轉載于:https://www.cnblogs.com/liqinglong/p/10991992.html

總結

以上是生活随笔為你收集整理的图像像素灰度内插(Matlab实现)的全部內容,希望文章能夠幫你解決所遇到的問題。

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