95 - What is digital image filtering and image convolution?

Sdílet
Vložit
  • čas přidán 19. 02. 2020
  • Most digital image processing tasks involve the convolution of a kernel with the image. This tutorial explains the basics of the convolution operation by using a couple of kernels as example. It also explains the implementation of colvolution in Python using 3 different approaches, opencv, scipy.signal and scipy.ndimage, respectively.
    The code from this video is available at: github.com/bnsreenu/python_fo...
  • Věda a technologie

Komentáře • 45

  • @carolzhang482
    @carolzhang482 Před 2 lety +2

    Very impressive. I only considered the clipping problem when dealing with 8_bit images, but never thought about the fractional case. I didn’t understand why some commands require floating data format. This tutorial pointed it out! Thank you!

  • @koushikks5146
    @koushikks5146 Před 2 lety

    Your classes are just brilliant and useful sir .
    Thank you so much.

  • @vasujain1970
    @vasujain1970 Před 3 lety +1

    This is really amazing!

  • @canklc5772
    @canklc5772 Před 2 lety

    Kernels and filters made easy 👍 Great job. I appreciate your work Sir

  • @michaelho5138
    @michaelho5138 Před rokem

    This video is amazing-thank you!

  • @josuegialis8146
    @josuegialis8146 Před 3 lety

    Theres a reason there no dislikes on this video. Very well made. Thank you so much Sreenivas! You gained a new subscriber,

  • @TeamDman
    @TeamDman Před 3 lety

    Thank you for this.

  • @salmamoora6048
    @salmamoora6048 Před 3 lety

    Hi sir, I want to ask you about bicubic convolution interpolation in image to addopt on pixel estimation on wide missing pixels. Is it possible to use 8x8 neighbour pixels to perform bicubic convolution interpolation? How about the kernel and the interpolation formula?

  • @mrs.t.v.h.lakshmiecedept.9765

    Excellent Sir. explained very clearly. Sir, Can you upload videos on Gaussian interpolation and optimization techniques with Matlab codes?

  • @WahranRai
    @WahranRai Před 3 lety +1

    You are describing correlation.
    You must rotate (180 degre) the kernel / filter if you want pergorm the convolution (mathematical function)
    the convolution is richer (commutative and associative9 than correlation

  • @johnmathew3580
    @johnmathew3580 Před 2 lety +1

    Loved it.

  • @sau002
    @sau002 Před 3 lety

    Thank you. I like how you make everything look so simple.

    • @pedroleighton9776
      @pedroleighton9776 Před 2 lety

      Sorry to be off topic but does any of you know of a trick to get back into an Instagram account??
      I stupidly forgot the login password. I would love any tricks you can offer me.

    • @garyshane5467
      @garyshane5467 Před 2 lety

      @Pedro Leighton Instablaster :)

    • @pedroleighton9776
      @pedroleighton9776 Před 2 lety

      @Gary Shane Thanks so much for your reply. I found the site through google and Im trying it out now.
      Seems to take quite some time so I will get back to you later with my results.

    • @pedroleighton9776
      @pedroleighton9776 Před 2 lety

      @Gary Shane it did the trick and I now got access to my account again. I am so happy!
      Thank you so much, you saved my account!

    • @garyshane5467
      @garyshane5467 Před 2 lety

      @Pedro Leighton you are welcome :)

  • @benjaminnunoo3147
    @benjaminnunoo3147 Před 3 lety

    can we do convolution without any of the 3 approaches. like just using the numerical part??

  • @ahmadalijamali3239
    @ahmadalijamali3239 Před 2 lety

    so brilliant

  • @jameshopkins3541
    @jameshopkins3541 Před 2 lety

    what files run first?

  • @programmingwithrabia6660

    please sir make a video how to fine slope of line in python

  • @yacine074
    @yacine074 Před 4 lety

    Sir please how we can apply unet if we have image with nii.gz extension with (256,256.28) and not with 3 canal

    • @DigitalSreeni
      @DigitalSreeni  Před 4 lety

      I don't know how to answer your question as I cannot interpret the exact issue. Looks like you have an image with 28 channels, is that correct? You can use unet for any size data set but you need to train them on similar data sets. Also, I don't understand .gz extension, isn't that just a compressed folder of a bunch of files? In summary, unet just works with numpy arrays of any dimension, you just need to find a way to get your images into the right format.

  • @martinhan1006
    @martinhan1006 Před 3 lety

    Sir, is local standard deviation realizable via similar concepts?

    • @DigitalSreeni
      @DigitalSreeni  Před 3 lety

      Yes, in fact you can define variance convolutional filter.

  • @Sdirimohamedsalah
    @Sdirimohamedsalah Před rokem

    Hello, thank you for this tutorial ! But I still not confortable with some points for exemple how you choosing the values of the kernel ?! Why form -1 to 2 ? What the logic behind it ? What if we change values positions ?

    • @DigitalSreeni
      @DigitalSreeni  Před rokem +1

      You can use any values in the kernel as it is just a mathematical operation. The kernel values for many standard operators are defined based on the author's research on a specific image processing task. For example, Sobel operator for edge detection. In fact, in deep learning approaches (e.g., CNN), the network is just trying to optimize the kernel values to find the best values that generate the useful features for image classification (or segmentation).

  • @johnmathew3580
    @johnmathew3580 Před 2 lety +1

    Thanks!

    • @DigitalSreeni
      @DigitalSreeni  Před 2 lety

      Thank you very much for your contribution John, very kind of you. Please keep watching.

  • @ernestiu7398
    @ernestiu7398 Před 4 lety

    please upload a tutorial on fourier transformation on an image and its applicaiton

    • @DigitalSreeni
      @DigitalSreeni  Před 4 lety +2

      It will come soon. Thanks for the suggestion.

  • @kyron5574
    @kyron5574 Před rokem

    Might be a novice question, but how exactly is the gaussian kernel calculated? I only see reference of different sizes "hard approximated" here: en.wikipedia.org/wiki/Kernel_(image_processing)

    • @DigitalSreeni
      @DigitalSreeni  Před rokem +2

      Simple. Look at the Gaussian function definition here: en.wikipedia.org/wiki/Gaussian_function
      In 2D, it is a bell curve and in 3D it is like a hill with the peak in the center. If you draw a contour plot of that hill on a paper, you will see high numbers in the middle and lower numbers as you go away from the center, in a symmetric way. This is why the kernel has the numbers shown in your link.
      1 2 1
      2 4 2
      1 2 1
      The whole thing is divided by 16 because all the numbers add up to 16. It is like multiplying the image with a value of 1 to not change any real information.
      More info here: homepages.inf.ed.ac.uk/rbf/HIPR2/gsmooth.htm

  • @shubhamshaurya951
    @shubhamshaurya951 Před 4 lety

    Sir.. Please upload video of DCT coding for JPEG image...

    • @DigitalSreeni
      @DigitalSreeni  Před 4 lety

      Not sure what you mean, perform a discrete cosine transform on an image?

  • @reemalmijmaj3215
    @reemalmijmaj3215 Před 2 lety

    cv2 is not working with me even though I upload it!

    • @DigitalSreeni
      @DigitalSreeni  Před 2 lety

      Not sure what you mean by 'uploaded'. cv2 is a python library you can use for image processing and machine vision.

  • @kaycheng3290
    @kaycheng3290 Před 3 lety

    Could you please make a video to explain wiener filter and radial wiener filter? Thanks

    • @DigitalSreeni
      @DigitalSreeni  Před 3 lety

      Sure. Will add to my list. Thanks for the suggestion.

  • @azazhussain7511
    @azazhussain7511 Před rokem

    Hi Sreeni. I really appreciate your work but I have one suggestion. I found your lecture series a bit out of flow. It would be really nice if there were different playlist based on the topic. for example image convolution introduction is lecture 95 and an example of CNN is lecture 71. It would be really helpful if you focus on one topic. e.g start with deep learning followed by CNN and then some practical examples of CNN. IThanks

    • @DigitalSreeni
      @DigitalSreeni  Před rokem

      Thanks for the feedback. When I started my channel, I promised a few researchers that I'd get them started with python from basics to intro machine learning. But after my first set of videos, many others requested me to continue covering other topics. Apparently, they related to my style of teaching. Therefore, I started to incorporate their feedback to define my content. You may find my latter vides to be more structured. But still, requests from various sources and topics may change abruptly. May be in future when I write a book or design a course, I can organize existing videos into streamlined material.

    • @azazhussain7511
      @azazhussain7511 Před rokem +1

      @@DigitalSreeni Thanks for your reply. I also mentioned this to you before. It would be really nice if you start a course on online platforms such as udemy or data camp. I have a data camp premium subscription. I have done some courses on image analysis from data camp but there isn't much about microscopy and deep learning. If you have a course that focuses on microscopy and deep learning it will be really useful.