Hello, Thank you for the video , I applied 2D and 3D non-local means filters on my microCT images and I saw a very minor improvement but it was actually nice to pull out some information from other layers and connect them somehow.
Very nice tutorial! The BM3D seems to have the highest PSNR, but I can't help but notice that the gray matter is seriously overestimated after filtering. I would not fully trust any segmentation of those data. In the software pipeline I use (CAT12) they use adapted NLMs (for both gaussian and rician noise). Is the NLM you used adapted for this? and is that maybe why you get such disappointing results?
Sir, can we compare (measuring PSNR) the noisy and denoising images without reference images? Because I do not have reference (clean) image for other application.
This is really wonderful, now I having read elsewhere about Super Resolution, wouldn't Perceptual loss be much more reasonable than that PSNR in terms of perceptual quality of the denoised image?
Depends on the application. If your goal is to make images pretty for others to judge then perceptual based approach is fine. But, if you want to segment an image then does it matter if it is noisy as long as you get good results?
I have a question for data preprocessing. I am extracting 2D slices from for brain tumor 3D MRI. Now the top and bottom images of the are usually black or have very little to now information. For now I have removed top 15 and bottom 15 images. But do you have any smarter way to check and form a threshold to keep the slice or not depending on if it has enough data or not?
You can use image quality assessment to automatically select images with enough quality. For example, you can use BRISQUE (watch my video on this topic) to assign a quality number to each slice. If you can identify the threshold value for the top and bottom 15 slices then you can use that as a filter. Obviously the assumption is that the top and bottom slices have a different metric compared to other slices which is usually true for full field CT scans; not sure about MRI. If that doesn't work out then you may try binary classification where you train negative class using images from top and bottom 15 and positive class using center images. One caveat here is that no model is perfect so you will misclassify some good ones as bad and vice versa.
Denoising does not care about the application, it only depends on what type of noise you expect in your images. Assuming you are dealing with random noise, you can use many approaches like, Gaussian, BM3D, Noise2Void, etc. I recently gave a talk on topic, here is the link of the recording if interested.. ua-cam.com/video/yO15IISXA1Y/v-deo.html
Many thanks sir, your excellent tutorial just saved me from many months of pain. I have two questions please: 1. Like psnr, can I call SSIM, MSE, NRMSE and RE? 2. How would the code lines look if I wish to use 10 noisy .tif images in the "MRI_images" folder?
@@DigitalSreeni Thank you Sir, for your kind reply . I have already tried with this. But not able to get psnr or snr values for the image. Can i get your email ID for further queries. It will be highly helpful as I'm running out of time.
@@DigitalSreeni thank you so much for responding! please how can i fed my folder of jpg images into the script and wish between this functions is the right for my case (multilabel classification of Chest X-Ray between pathologies for multi-label) ?
nice video, currently I'm working on denoising ultrasound images, but we found that simply using one method on the whole image can sometimes remove some structural information, as some noises in the structure are supposed to stay there. Do you have some ideas or papers to talk about this problem? Also in the field of ultrasound images we found that most of image quality assessment methods such as SSIM or PSNR or other no referenced quality assessment methods are not suitable here. It would be very nice if you can make a video about human visual quality assessment methods. Thank you very much
DICOM images come in may formats as it may contain different tables. Therefore, reading and saving these images can be tricky - not just in Python but also using other standard software. It requires a bit of experimentation to work with these files.
Dear Srini, I have gained a lot , by viewing your videos, here, I have just finished completing my Post Graduate Program of AIML from GreatLearning- it was a one year course. I plan to do specialisation In Medical Image Analysis using AIML. Can you please suggest some well known Advance Online Course, not more then 6 month Duration. Since I have already done my PGP and I am looking for an Advance course. If you could please, proved such a list and your views on Medical Image Analysis Profession in coming time. I have engineering background as such.
I am not aware of any formal courses on medical image analysis. The best place to find them would be during conferences. I recommend looking up some medical imaging related conferences and tradeshows and looking for courses / training they offer during the session.
Not sure what U49 is, never saw the error. My suggestion is to use skimage.io to read images and if you see this error convert your image to ubyte first. Also, make sure the image is 2D numpy array. For conversion to ubyte you can use skimage.img_as_ubyte
I don't think your analysis criteria are very meaning full. When denoising medical images if you remove 80% of the noise and 20% of the data, then that's a pretty bad denoising process. Also, your original image doesn't look like a real MRI, it is so smooth, that artificially biases for denoising processes which are edge detecting. In MRI, the tissue texture is extremely important, and smoothing up to a boundary is generally not useful. Also, real MRI data is complex, so the noise isn't gaussian (as there is gaussian noise in the real and imag components), it's Riccian. Models that can't denoise complex data will add an offset to the low signal intensity regions.
Thanks for your feedback. I do not have access to MRI data so I had to use whatever I could find online, with appropriate license. The techniques I mentioned are standard denoising approaches and any time you perform any image processing you lose data. Therefore, it is up to the user to make the compromise between image processing and data loss. Please do let the viewers know if you have any suggestions on better denoising algorithms.
Hello,
Thank you for the video , I applied 2D and 3D non-local means filters on my microCT images and I saw a very minor improvement but it was actually nice to pull out some information from other layers and connect them somehow.
Please create some videos on preprocessing and data augmentation of 3D mri images
sir, how to import skimage in python spyder (5.0), its showing an error as "*No module named 'skimage' *"
Very nice tutorial! The BM3D seems to have the highest PSNR, but I can't help but notice that the gray matter is seriously overestimated after filtering. I would not fully trust any segmentation of those data. In the software pipeline I use (CAT12) they use adapted NLMs (for both gaussian and rician noise). Is the NLM you used adapted for this? and is that maybe why you get such disappointing results?
Sir, can we compare (measuring PSNR) the noisy and denoising images without reference images? Because I do not have reference (clean) image for other application.
I am trying to perform BM3D on multiple mri images. It drops an error everytime: - Images of type float must be between -1 and 1. Please reply
This is really wonderful,
now I having read elsewhere about Super Resolution, wouldn't Perceptual loss be much more reasonable than that PSNR in terms of perceptual quality of the denoised image?
Depends on the application. If your goal is to make images pretty for others to judge then perceptual based approach is fine. But, if you want to segment an image then does it matter if it is noisy as long as you get good results?
Hi,If I only have .jpg what should I do for this project
Hey sir you're doing a great job pls make tutorial on image processing using Convulational neural networks pls sir. And this rose is for you.🌹😊
I already recorded videos on CNN and Unet; please check my channel.
I have a question for data preprocessing. I am extracting 2D slices from for brain tumor 3D MRI. Now the top and bottom images of the are usually black or have very little to now information. For now I have removed top 15 and bottom 15 images. But do you have any smarter way to check and form a threshold to keep the slice or not depending on if it has enough data or not?
You can use image quality assessment to automatically select images with enough quality. For example, you can use BRISQUE (watch my video on this topic) to assign a quality number to each slice. If you can identify the threshold value for the top and bottom 15 slices then you can use that as a filter. Obviously the assumption is that the top and bottom slices have a different metric compared to other slices which is usually true for full field CT scans; not sure about MRI.
If that doesn't work out then you may try binary classification where you train negative class using images from top and bottom 15 and positive class using center images. One caveat here is that no model is perfect so you will misclassify some good ones as bad and vice versa.
Sir Psnr value should between 30 to 50...why it is in 17 ????
Hello. Can I know what types of denoising I can use for satellite images? For example, to detect deforestation.
Denoising does not care about the application, it only depends on what type of noise you expect in your images. Assuming you are dealing with random noise, you can use many approaches like, Gaussian, BM3D, Noise2Void, etc. I recently gave a talk on topic, here is the link of the recording if interested.. ua-cam.com/video/yO15IISXA1Y/v-deo.html
Sir how to download that CT_small.dcm image
Plz share the link
Many thanks sir, your excellent tutorial just saved me from many months of pain. I have two questions please:
1. Like psnr, can I call SSIM, MSE, NRMSE and RE?
2. How would the code lines look if I wish to use 10 noisy .tif images in the "MRI_images" folder?
1. yes.
2. ua-cam.com/video/QxzxLVzNfbI/v-deo.html
@@DigitalSreeni very much appreciated sir.
Hii Sreeni, Could you make a video of ensemble learning lung cancer image classification using dicom images.
Sir, I have CT dicom files. Can you please explain ,how I will be able to get the value for psnr, for each image. Please do help me with this.
You can use pydicom library to open the dicom file. Example usage:
from pydicom import dcmread
# Read the DICOM file
dicom_data = dcmread('brain.DCM')
@@DigitalSreeni Thank you Sir, for your kind reply . I have already tried with this. But not able to get psnr or snr values for the image. Can i get your email ID for further queries. It will be highly helpful as I'm running out of time.
Thank you, this is really wonderful.
You're very welcome!
Thanks for the video, is the same code useful for Xray images (jpg) ?
Yes.
@@DigitalSreeni thank you so much for responding! please how can i fed my folder of jpg images into the script and wish between this functions is the right for my case (multilabel classification of Chest X-Ray between pathologies for multi-label) ?
nice video, currently I'm working on denoising ultrasound images, but we found that simply using one method on the whole image can sometimes remove some structural information, as some noises in the structure are supposed to stay there. Do you have some ideas or papers to talk about this problem? Also in the field of ultrasound images we found that most of image quality assessment methods such as SSIM or PSNR or other no referenced quality assessment methods are not suitable here. It would be very nice if you can make a video about human visual quality assessment methods. Thank you very much
Use Noise2Void - it retains structural information and only cleans up random noise. arxiv.org/pdf/1811.10980.pdf
Here is their Github repo link: github.com/juglab/n2v
Thank you this amazing tutorial sir. Can I use this techniques to breast mammogram image enhancement?
Sir when i try to save the dicom image, in the tif format it gives me error : ( KeyError: 'TIF' ).
But the output of the image can be seen.
DICOM images come in may formats as it may contain different tables. Therefore, reading and saving these images can be tricky - not just in Python but also using other standard software. It requires a bit of experimentation to work with these files.
write extension as .tiff instead of .tif and it will work fine
@@naweedashraf8868 do you have any idea how to import skimage in python spyder(5.0)
thank you, WONDERFUL!!
Thank you too!
Can you introduce the analysis of H & E staining in immunohistochemistry image ? Thank you !
What do you want to analyze in these images? Do you want to count nuclei?
Dear Srini, I have gained a lot , by viewing your videos, here, I have just finished completing my Post Graduate Program of AIML from GreatLearning- it was a one year course. I plan to do specialisation In Medical Image Analysis using AIML. Can you please suggest some well known Advance Online Course, not more then 6 month Duration. Since I have already done my PGP and I am looking for an Advance course. If you could please, proved such a list and your views on Medical Image Analysis Profession in coming time. I have engineering background as such.
I am not aware of any formal courses on medical image analysis. The best place to find them would be during conferences. I recommend looking up some medical imaging related conferences and tradeshows and looking for courses / training they offer during the session.
Sir i am using jpg images. And i am getting value error:can not convert from U49 to float64.how to fix it..kindly reply🙏🙏🙏
Not sure what U49 is, never saw the error. My suggestion is to use skimage.io to read images and if you see this error convert your image to ubyte first. Also, make sure the image is 2D numpy array.
For conversion to ubyte you can use skimage.img_as_ubyte
sir, can you help me to solve the error " no module named skimage", we are using spyder (5.0)
Thanks for the video, could you also do a 3D CT/MRI related topic?
Please check my latest video: ua-cam.com/video/0Rpbhfav7tE/v-deo.html
does this apply to X-ray as well?
Yes.
Sir I am searching for a programme Automated image regristration py pythen spider help me please ( image medical )
hi guys Irun this code but ihave get this error ImportError: cannot import name 'image_as_float' from 'skimage' how can fix
It is img_as_float not image_as_float.
did you get error as "no module named skimage", which python version did you use?
hello, great video. can i try these on nii files?
Yes
Hi sir.. How to add different types of noises into a images in directory? Please make a video for this. Thank you sir.
Here is a useful resource for you: stackoverflow.com/questions/22937589/how-to-add-noise-gaussian-salt-and-pepper-etc-to-image-in-python-with-opencv
that was great
Thanks
I don't think your analysis criteria are very meaning full. When denoising medical images if you remove 80% of the noise and 20% of the data, then that's a pretty bad denoising process. Also, your original image doesn't look like a real MRI, it is so smooth, that artificially biases for denoising processes which are edge detecting.
In MRI, the tissue texture is extremely important, and smoothing up to a boundary is generally not useful. Also, real MRI data is complex, so the noise isn't gaussian (as there is gaussian noise in the real and imag components), it's Riccian. Models that can't denoise complex data will add an offset to the low signal intensity regions.
Thanks for your feedback. I do not have access to MRI data so I had to use whatever I could find online, with appropriate license. The techniques I mentioned are standard denoising approaches and any time you perform any image processing you lose data. Therefore, it is up to the user to make the compromise between image processing and data loss. Please do let the viewers know if you have any suggestions on better denoising algorithms.