編寫演算法實現影象繞中心點旋轉功能
先找到四個頂點旋轉後的位置,然後求出新影象的大小
找到旋轉後的影象對應的原影象的位置,將原影象的顏色屬性賦給相應位置的新影象
(旋轉思想為先將影象中心點移到座標原點,然後進行旋轉,最後再將座標值換為實際的座標值進行畫素顏色屬性的賦值)
a=input('enter the picture address:','s');
b=input('enter the angle:');
r=imread(a);
angle=b*pi/180;
% r=imread('rice.png');
% angle=60*pi/180;
figure,imshow(r);
[m,n,o]=size(r);
i=[cos(angle) -sin(angle);
sin(angle) cos(angle)];
a=[n/2;m/2];
b=[n/2;-m/2];
c=[-n/2;m/2];
d=[-n/2;-m/2];
ac=round(i*[n/2;m/2]);
bc=round(i*[n/2;-m/2]);
cc=round(i*[-n/2;m/2]);
dc=round(i*[-n/2;-m/2]);
mc=max([ac(2,1),bc(2,1),cc(2,1),dc(2,1)])-min([ac(2,1),bc(2,1),cc(2,1),dc(2,1)]);
nc=max([ac(1,1),bc(1,1),cc(1,1),dc(1,1)])-min([ac(1,1),bc(1,1),cc(1,1),dc(1,1)]);
imagenew=zeros(round(mc),round(nc),o,'uint8');
j=[cos(angle) sin(angle);
-sin(angle) cos(angle)];
for i = -nc/2:nc/2
for j= -mc/2:mc/2
temp=[i;j];
old=round(j*temp);
if((round(old(2,1)+m/2)>0)&&(round(old(2,1)+m/2)0)&&(round(old(1,1)+n/2)for k=1:o
imagenew(round(j+mc/2)+1,round(i+nc/2)+1,k)=r(round(old(2,1)+m/2)+1,round(old(1,1)+n/2)+1,k);
endend
endendfigure,imshow(imagenew);
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 計算等約束的係...