Wikipedia/Wikimedia Commonsで学ぶGNU Octave (準備編)
wikipedia:離散コサイン変換 をぼーっと見ていました。
File:Dandelion clock quarter dft dct.png - Wikimedia Commonsというのがありました。
再現してみようということになり、Ubuntu 9.04 もどき上の端末で
$ sudo aptitude install octave octave-image octave-signal
した上で、
$ octave
ってして、
% read the image RGB = imread('Dandelion_clock.jpg'); % convert pixels to the [0 1] range RGB = im2double(RGB); % convert to grayscale I = rgb2gray(RGB); % evaluate magnitude of the DFT F = abs(fft2(I)); % use log scale F = log(1 + F); F = log(1 + F); % normalize F = F/max(F(:)); % evaluate magnitude of the DCT C = abs(dct2(I)); % use log scale C = log(1 + C); C = log(1 + C); % normalize C = C/max(C(:)); % show all the results imshow(F), colorbar, colormap(jet); figure, imhist(F); figure, imshow(C), colorbar, colormap(jet); figure, imhist(C);
を流し込みます。ただし、ここで、GNU Octaveおよびoctave-forgeではimcropが未実装ですので、
% take only a quarter F = imcrop(F,[0 0 Y X]); % take only a quarter C = imcrop(C,[0 0 Y X]);
あたりは止めておきました。
実行結果 (画像) についてはまた後ほど。