Matlab實現imresize函式功能

2022-06-19 01:18:09 字數 1535 閱讀 6749

根據放縮倍數,開闢乙個新矩陣存放放縮後的影象

利用雙線性插值公式, 計算新影象中的每個點對映回原影象中的灰度值(注意邊界處理)

function outputimg = my_imresize(a,n)

% a 是影象矩陣,n是放縮的倍數

% 返回值outputimg是乙個放縮後的影象矩陣

if n <= 0

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

end%四捨五入計算放大後影象矩陣

[h,w,ch] = size(a);

dh = round(h * n);

dw = round(w * n);

outputimg = zeros(dh,dw,ch);

%利用雙線性插值公式,從新矩陣對映回原影象

for di = 1:dh

for dj = 1:dw

ii = di / n;jj = dj / n;

i = floor(ii);j = floor(jj);

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

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

%邊界處理

if (i < 1)

i = 1;

endif (j < 1)

j = 1;

endif((i + 1) > h)

i = h - 1;

endif((j + 1) > w);

j = w -1;

end%線性插值公式

outputimg(di,dj,:) = (1 - u) * (1 - v) * a(i,j,:) + (1 - u) * v * a(i,j + 1,:)

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

endend %轉化成uint8才能正常顯示

outputimg = uint8(outputimg);

灰度圖放大2倍

%呼叫示例:

a = imread('cameraman.tif');

b = my_imresize(a,2);

figure,imshow(a),title('原圖');

figure,imshow(b),title('放大兩倍後的影象');

彩色圖縮小1/2

% 呼叫示例:

a = imread('pears.png');

b = my_imresize(a,0.5);

figure,imshow(a),title('原圖');

figure,imshow(b),title('縮小1/2後的影象');

matlab實現kmeans演算法

kmeans是一種聚類演算法 無監督學習 演算法分為兩步 1.隨機選取k個聚類中心。2.計算每個樣本點離哪個聚類中心最近 距離計算 就將該樣本分為這個類。3.重新計算這k個類的聚類中心。一種簡單的計算方法為 計算每個類的平均值即為新的聚類中心。重複執行步驟2,直到聚類中心的變化小於給定閾值,或者達到...

Apriori演算法Matlab實現

clc clear 最小支援度設定 min sup 2 最小置信度 min conf 0.7 讀取檔案,當前的檔案型別是txt檔案,事務資料用數字來表示的,測試資料可以用 資料探勘概念與技術 第三版中的資料為樣本 fid fopen d matlabfile apriori dataapriori....

指派問題 MATLAB實現

適用於任意n階係數矩陣 clear all c 2 1513 4 10414 15 9 1416 13 7811 9 效率矩陣c n size c,1 計算c的行列數n c c 計算目標函式係數,將矩陣c按列排成乙個列向量即可。a b 沒有不等式約束 ae zeros 2 n,n 2 計算等約束的係...