根據放縮倍數,開闢乙個新矩陣存放放縮後的影象
利用雙線性插值公式, 計算新影象中的每個點對映回原影象中的灰度值(注意邊界處理)
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 計算等約束的係...