**Problem**

This post continues our series of posts on a programmatic investigation of the effects of the location and thickness of horizontal, vertical, and diagonal lines on the magnitude and phase components of 2D FFT. In this post, we will continue our investigation of vertical lines by modifying their location in the image without modifying their thickness. The MATLAB source of our programmatic investigation is in the last section of this post. The previous post on vertical lines is here.

**Vertical Line Shifted Right**

**Figure 1**shows a line shifted right in the image.

Figure 1. Vertical line shifted right in the image (hor_line_01c.jpg) |

addpath C:\Users\Vladimir\research\images\

ImgVerLine_01c = imread('ver_line_01c', 'jpg');

figure;

imshow(ImgVerLine_01c);

title('VER LINE 01c');

Now we compute the 2D FFT of the image in

**Figure 1**. The image is converted into a 2D double matrix. The fftshift command positions the 0,0 origin to the center of the image. We compute the absolute magnitude of each value in the 2D matrix and take the log of each value. 1 is added to each value before taking the log, because log(0) is not defined.

%%% ff2 magnitude

fftVerLine01c = fft2(double(ImgVerLine_01c));

fftVerLine01c = fftshift(fftVerLine01c);

fftVerLine01c = abs(fftVerLine01c);

fftVerLine01c = log(fftVerLine01c+1);

fftVerLine01c = mat2gray(fftVerLine01c);

The magnitude image is shown in

**Figure 2**. As can be seen in

**Figure 2**, the FFT magnitude shows a line orthogonal to the vertical line in

**Figure 1**. Note that with horizontal lines the 2D FFT magnitude lines are vertical.

figure;

imshow(fftVerLine01c);

colormap(gray);

title('VER LINE 01c FFT2 Magnitude');

Figure 2. 2D FFT magnitude of Figure 1 |

We compute the phase component and display it. The image is shown in

%%% fft2 phase

fftVerLine01c_PHASE = fft2(double(ImgVerLine_01c));

fftVerLine01c_PHASE = fftshift(fftVerLine01c_PHASE);

fftVerLine01c_PHASE = angle(fftVerLine01c_PHASE);

figure;

imshow(fftVerLine01c_PHASE, [-pi, pi]), colormap(gray);

title('VER LINE 01c FFT2 Phase');

**Figure 3**.%%% fft2 phase

fftVerLine01c_PHASE = fft2(double(ImgVerLine_01c));

fftVerLine01c_PHASE = fftshift(fftVerLine01c_PHASE);

fftVerLine01c_PHASE = angle(fftVerLine01c_PHASE);

figure;

imshow(fftVerLine01c_PHASE, [-pi, pi]), colormap(gray);

title('VER LINE 01c FFT2 Phase');

Figure 3. 2D FFT phase of Figure 1 |