1樓:匿名使用者
rotate,旋轉影象
你可以看看下面這個鏈結
還有,如果你認識那個叫 楊華楊華軍 的人,麻煩催一下讓他把那個問題快點解決掉,別老吊著死不要臉。
matlab中關於影象旋轉問題
2樓:匿名使用者
這段**的功能是對通過雙線性插值對影象進行旋轉變換。迴圈體前面的**主要是計算旋轉後影象的大小以及一些輔助資料,迴圈體中對旋轉變換後新影象的每乙個點,分別找到原始影象中對應位置最近的四個點,然後進行雙線性插值。
不知道題主什麼地方看不懂?
恕我直言,不要指望逐句給你解釋。如果你絕大部分都看不懂,那麼給你講明白會是一件很艱難的事。如果只是部分看不懂,我可以有針對性地給你解答。
imshow(uint8(imrotate(i,45,'bilinear')))
如果只是要使用旋轉功能,完全沒必要去研究上面的這段**(水平比較一般,例如rows和cols兩個變數其實是反過來的)。
3樓:我行我素
這個程式不完整,不能執行。
matlab 影象旋轉90度 方法
4樓:有空飄過的
b = imrotate(a,angle);
angle是逆時針角度,要順時針90度
b = imrotate(a, -90);
matlab影象旋轉
5樓:丨遙遠的她灬
下圖顯示原影象旋轉後的點與原影象點的對應關係,以按此公式求得新影象每一點對應的原影象點。
旋轉後,由於影象點可能是非整數,出現畫素空洞問題,故需要進行插值法,下面選用最近鄰插值法。
源**[html] view plain copy
function img_rotate=my_img_rotate_chazhi(img1,angle)
% 旋轉後影象=my_img_rotate(原影象,旋轉角度) 0《旋轉角度<360
% 查詢新圖對應的原圖畫素點
% 最鄰近點插值方法
[h,w,d]=size(img1);
radian=angle/180*pi;
cos_val = cos(radian);
sin_val = sin(radian);
w2=round(abs(cos_val)*w+h*abs(sin_val));
h2=round(abs(cos_val)*h+w*abs(sin_val));
img_rotate = uint8(zeros(h2,w2,3)); %畫素是整數
for x=1:w2
for y=1:h2
x0 = uint32(x*cos_val + y*sin_val -0.5*w2*cos_val-0.5*h2*sin_val+0.5*w);
y0= uint32(y*cos_val-x*sin_val+0.5*w2*sin_val-0.5*h2*cos_val+0.5*h);
x0=round(x0); %最鄰近插值
y0=round(y0); %最鄰近插值
=怎麼show旋轉後的影象=
=影象是怎麼顯示的=
影象的顯示都是基於矩陣畫素來顯示的...上面每一張影象的影象資訊其實是乙個rgb矩陣來的.所以必須把旋轉後的影象放到乙個畫素矩陣中才能顯示這個旋轉後的影象.
設一張影象的大小是col*row的.那麼以這個影象對角線為直徑的圓就能夠包含這個影象經旋轉後的影象..在這裡因為影象的顯示是矩陣式的,所以這裡以影象對角線為邊長構造乙個正方形來儲存旋轉後的影象.
從上面旋轉後的影象可以看出效果啦,旋轉後的影象就包含在這個正方形的矩陣中.
=計算旋轉影象所需要的正方形=
因為影象是col*row的,所以這個正方形的邊長 new_img_size = (col^2+row^2)^0.5;
這樣使用matlab就可以生成乙個儲存最終影象的rgb矩陣了:
[cpp] view plain copy
img_rotated = uint8(zeros(new_img_size , new_img_size , 3); //%乙個畫素由rgb三個分量表現.
6樓:匿名使用者
matlab函式:b = imrotate(a,angle,method);a是原始影象,angle是旋轉角度,b為旋轉後的影象;使用method引數可以改變插值演算法,例如::最鄰近線性插值(nearest-neighbor interpolation)'bilinear':
雙線性插值(bilinear interpolation)'bicubic': 雙三次插值(或叫做雙立方插值)(bicubic interpolation)。 b = imrotate(a,angle,method,bbox)bbox引數用於指定輸出影象屬性:
'crop': 通過對旋轉後的影象b進行裁剪, 保持旋轉後輸出影象b的尺寸和輸入影象a的尺寸一樣。: 使輸出影象足夠大, 以保證源影象旋轉後超出影象尺寸範圍的畫素值沒有丟失。
一般上這種格式產生的影象的尺寸都要大於源影象的尺寸
7樓:與hu謀皮
matlab的:b = imrotate(a,angle);a是原始影象,angle是旋角,b為旋轉後的影象,inshow(b)顯示旋轉後的影象
怎麼用matlab計算影象熵,如何用matlab計算已知影象的熵
求一幅數字影象的熵值 i imread lena.bmp i double i c,r size i 求影象的規格 img size c r 影象畫素點的總個數 l 256 影象的灰度級 h img 0 nk zeros l,1 for i 1 c for j 1 r img level i i,j...
Matlab序列的傅立葉變換,怎麼用matlab做傅立葉變換
簡堂宇文青夢 fs 1000 t 0 1 fs 0.6 f1 100 f2 300 x sin 2 pi f1 t sin 2 pi f2 t subplot 711 plot x title f1 100hz f2 300hz 的正弦訊號,初相0 xlabel 序列 n grid onnumber...
matlab多項式表示式求根,怎樣有matlab解多項式方程
在matlab中,solve函式主要是用來求解代數方程 多項式方程 的符號解專析解 例如 syms a b c x solve a x 屬2 b x c 結果 ans b b 2 4 a c 1 2 2 a b b 2 4 a c 1 2 2 a 如果以b為變數 syms a b c x solve...