Thank you very much ! I am completing a bachelor in computer science. I took an optional course about images processing and we had a chapter about Fourier transform. Your video was VERY helpful ! Good job !
I dont know why error with a same code: "dft = cv2.dft(np.float32(img), flags=cv2.DFT_COMPLEX_OUTPUT) cv2.error: OpenCV(4.6.0) :-1: error: (-5:Bad argument) in function 'dft' > Overload resolution failed: > - src is not a numpy array, neither a scalar > - Expected Ptr for argument 'src'"
Yes, you are right that edges are high frequency components. In the video you can see how blocking the central low frequency components and retaining only high frequency component leads to edge detection. I do realize the mistake in one of slides where it says Low pass instead of high pass (but the accompanying text clearly mentions that high frequencies show edges).
Thank you so much. Your tutorials are well explained. Please keep posting more videos. I just have a question. How to determine if an image has a low or high frequency by a value instead of plotting?
Since the original Discrete Fourier Transform would produce the centers of low frequencies at corners, which was hard to see, we have to shift the these centers to the middle of the image. He explained it here: th-cam.com/video/RVE-CSZijAI/w-d-xo.html
excuse me, you keep saying high-frequency and low-frequency regions. but why didn't you explain low and high frequency in a digital image? In an image, we have pixel values to represent the brightness. How does it translate to low and high frequency?
This is such an amazing channel. I can’t express how grateful I am for the content.
You are way better at explaining this stuff than most uni teachers. Thanks!
Thanks :)
Thank you very much ! I am completing a bachelor in computer science. I took an optional course about images processing and we had a chapter about Fourier transform. Your video was VERY helpful ! Good job !
You are such a great tutor. Well explained and understood
Glad it was helpful!
I dont know why error with a same code:
"dft = cv2.dft(np.float32(img), flags=cv2.DFT_COMPLEX_OUTPUT)
cv2.error: OpenCV(4.6.0) :-1: error: (-5:Bad argument) in function 'dft'
> Overload resolution failed:
> - src is not a numpy array, neither a scalar
> - Expected Ptr for argument 'src'"
Edges are high frequency components. So to detect edges shouldn't we apply high pass filter? Need help..
Yes, you are right that edges are high frequency components. In the video you can see how blocking the central low frequency components and retaining only high frequency component leads to edge detection. I do realize the mistake in one of slides where it says Low pass instead of high pass (but the accompanying text clearly mentions that high frequencies show edges).
@@ZEISS_arivis btw this is the first tutorial (out of many) where I understood fourier transform for images. Great and easy explanation 🔥
Thank you so much. Your tutorials are well explained. Please keep posting more videos.
I just have a question. How to determine if an image has a low or high frequency by a value instead of plotting?
Wonderful explanation
After applying Fourier filter, how to save applied images? Converting float 32 to uint8 gives me a weird image.
You can save it using pyplot. I just tried the following and it worked fine.
plt.imsave('output.tif', img_back, cmap='gray')
why do we need shifting the origin ?
Since the original Discrete Fourier Transform would produce the centers of low frequencies at corners, which was hard to see, we have to shift the these centers to the middle of the image. He explained it here: th-cam.com/video/RVE-CSZijAI/w-d-xo.html
Thank you sir for this video.It is really helpful 🔥
excuse me, you keep saying high-frequency and low-frequency regions. but why didn't you explain low and high frequency in a digital image? In an image, we have pixel values to represent the brightness. How does it translate to low and high frequency?
such a great content!!!!
Thank ou so much! Amazing.
U are great sir
when doing idft, u can use cv.DFT_SCALE flag to get normalized image
img_back = cv.idft(f_ishift, flags=cv.DFT_SCALE)
you are an absolute legend, thank you for this!!😀
Thx