早在1988年,AT&T貝爾實(shí)驗室的Gerard Holzmann出版過(guò)一本有趣的書(shū),名叫《圖片的背后:數字暗房的故事》(http://tinyurl.com/b9rb9))。這本書(shū)向我們展示了如何用簡(jiǎn)單的數學(xué)方法對像素值和坐標做變幻,最終得到奇妙對圖片效果。
在這本書(shū)的第一部分,Holzmann展示了怎么用公式在笛卡爾坐標系和極坐標系里生成有趣的圖片。下面我們就看看怎么用MATLAB來(lái)實(shí)現。
需要調用的MATLAB函數:meshgird,cart2pol
需要用到圖像處理工具箱的函數:imshow
三部曲:
x = 1:3;y = 10:14;[xx, yy] = meshgrid(x, y)xx = 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3yy = 10 10 10 11 11 11 12 12 12 13 13 13 14 14 14(譯者注:這段代碼是用來(lái)生成12個(gè)點(diǎn),所以點(diǎn)的橫坐標存儲在xx數組內,縱坐標存儲在yy數組內。)
x = linspace(-pi, pi, 201);% 如果你給meshgrid傳遞的參數只有一個(gè)數組向量,那么% meshgrid會(huì )默認橫坐標和縱坐標值都是這個(gè)數組向量。[xx,yy] = meshgrid(x);A = 10;I = sin(A*(xx.^2 + yy.^2));% 圖形只顯示[-1,1]區間imshow(I, [-1 1])
[xx,yy] = meshgrid(-125:125);[theta,R] = cart2pol(xx,yy);I = sin(50*theta);imshow(I, [-1 1])
聯(lián)系客服