How Blurs & Filters Work - Computerphile

Поделиться
HTML-код
  • Опубликовано: 26 ноя 2024

Комментарии • 261

  • @robmckennie4203
    @robmckennie4203 9 лет назад +779

    now *this* is my kind of computerphile video. low level, technical, mathematical, great stuff.

    • @Satchboy71
      @Satchboy71 9 лет назад +19

      +Rob Mckennie Agreed. I hope they do an "extras" video on this topic.

    • @Crobisaur
      @Crobisaur 9 лет назад +11

      +Rob Mckennie If you want to learn more about image processing, a great book (and not too expensive) is ISBN-13: 978-0123965493.

    • @indianakernick3788
      @indianakernick3788 9 лет назад

      +xIsheyx Yeah me too!

  • @matthiaswandel
    @matthiaswandel 9 лет назад +301

    To do a realiztic blur, you really should convert pixel values to light values (de-gamma), then filter, then convert back to pixel values. Gamma is typically around 2.3. which means, light intensity is pixel value raised to 2.3. If you don't do this, dark smears over light in ways that it doesn't do in real life.

    • @lukasdon0007
      @lukasdon0007 9 лет назад +54

      +Matthias Wandel Excellent comment. Photoshop actually has an option for this (to perfom RGB-blends with linear gamma)
      However, the problem is not just with blurs. It's for pretty much all operations you perform. Which begs the question: why not work in a linear color space alltogether, and only apply gamma to the output. That's how lightroom tends to do stuff: gamma is only applied for visual preview and for output, but internally it's all a linear colorspace.
      In Photoshop, you can choose to do all your work in a colorspace such as LAB, which would solve most of your problems. However, sadly LAB is a bit of an underdog because it requires people to learn a new colorspace and adapt their workflow accordingly.

    • @lcq92
      @lcq92 9 лет назад

      +Lukas don How's this option called in Photoshop ?

    • @Tymon0000
      @Tymon0000 9 лет назад +1

      +Matthias Wandel Yea and by some reason this is not default option in many programs.

    • @lesselp
      @lesselp 9 лет назад

      +Matthias Wandel You`re a woodwork guy,Wandel.This stuff is out of your area.

    • @db112nl
      @db112nl 9 лет назад +5

      +lesselp Haha but you forget he also does the video editing !

  • @napillnik
    @napillnik 9 лет назад +6

    Having a square kernel is the correct way to do blurs, but it's also very computationally intensive. If you want something fast, but with the same effect, you do 2 passes through an image, applying 2 kernels each time. One time the kernel is a line vector, and the second time it is a column vector.
    So if you want a blur with a kernel that's 20x20, you need to make 400 multiplications for each pixel, and 399 additions, which is 799 operations.
    You could achieve the same with 2 times passing the images with just a 1x20 vector and 20x1 vector. For each pixel you make 20 multiplications and 19 additions, and you do that twice, amounting to 39 operations per pixel, which is 10 times faster than a square kernel.
    The advantage grows exponentially as the kernel size grows. The first approach (square kernel) has an algorithm complexity of O(n^2), while the second approach has the complexity O(n).
    Try it out. The effects are the same visually. The images will be different, but you won't be able to tell which one is the real Gaussian Blur.

  • @LanIost
    @LanIost 9 лет назад +7

    I'm so happy now. I've been coding since I was a kid and never quite (had to but still...) understood how this sort of thing worked mostly because any time I tried to read/watch anything on the subject it SOLELY explained it using math too complex for me at the age I was researching it at OR was a snooze-fest. This was done in a way that IMMEDIATELY made sense and stayed that way the entire time. THANK YOU for finally solving this mystery for me!

    • @DeJayHank
      @DeJayHank 9 лет назад +1

      +LanIost If you like programming and would like to try do some image processing of your own I would recommend the OpenCV library (available for C++ Python and Matlab). It's very user friendly and popular, so it's easy to google for help.
      Loading an image and applying a Gaussian blur is as easy as (using python as an example):
      import cv2
      myImg = cv2.imread('path/to/your/image.png'')
      myImg = cv2.GaussianBlur(myImg, (5,5), 2)
      cv2.imshow('Blurred image', myImg)
      cv2.waitKey(0)

  • @gunjeetsingh90
    @gunjeetsingh90 8 лет назад +100

    Mike Pound and Tom Scott..Ill watch any videos these guys make..

  • @WhyFi59
    @WhyFi59 9 лет назад +246

    This video lead me to wondering something. Although some things are taught about how images are represented and manipulated by computers in CS courses and other such resources, nothing is taught about sound, that I could find. That is a shame. I would like to see something about digital sound on Computerphile, if possible.

    • @TheBluMeeny
      @TheBluMeeny 9 лет назад

      +WhyFi59 Meto!

    • @tobsco2
      @tobsco2 9 лет назад +19

      Have a look at the videos on the Xiph.Org site, they're the guys that made the FLAC and ogg vorbis codecs.

    • @quantumsmith371
      @quantumsmith371 9 лет назад +19

      Digital sounds for the most part is signal processing with Fourier Transformations. It lends itself more to Mathematics and EE.

    • @WhyFi59
      @WhyFi59 9 лет назад +2

      Quantam Smith Sure, but I'm sure there's a programatic way of dealing with sound, otherwise there wouldn't be sound files and you'd require a dedicated sound card just to process sound (which is actually opposite to how most PCs are, with dedicated graphics cards but no dedicated sound cards). Maybe I'm messing things up though.
      tobsco2 Thank you for the suggestion.

    • @quantumsmith371
      @quantumsmith371 9 лет назад +6

      ***** most sound cards are advanced DACs they may do some sound processing, but for the most part they turn 1s and 0s into an analog signal. Programmatically sound is transformed using an FFT(Fast Fourier Transform). In which the constants of the Fourier series are changed which affects the sound wave.
      If you are interested in sound files I would say that is almost entirely under the field of compression as an uncompressed sound file is nothing more than a list of intensity values. If that is your thing then you should look at Discrete Cosine Tranforms and how they relate to compression

  • @yawarjamal909
    @yawarjamal909 4 года назад +1

    I wish I had an opportunity to enroll in his class. I would have enrolled in each and every single class of his. Just simply love Dr Mikes teaching style and his passion towards teaching.

  • @EliteWheatProdctionZ
    @EliteWheatProdctionZ Год назад +1

    As an outsider, this explanation was super easy to grasp and gave me a ton of insight into image processing, cheers Dr. Pound!

  • @whileimgaming
    @whileimgaming 6 лет назад

    Dr. Mike Pound maybe the best. He has the patience to do arts and crafts and _really_ explain things. Superb!

  • @SyntekkTeam
    @SyntekkTeam 9 лет назад +71

    Great video, however I was a little dissapointed that no examples were shown. I would have liked to have seen how an image looks different when a gaussian vs a mean blur is applied and also how various standard deviations and radii would affect the image.

    • @evilakah1
      @evilakah1 9 лет назад +5

      +Arend Peter Castelein Download photoshop, try it yourself. It's really easy to do, and worth trying. Cheers! :)

    • @joseph10097
      @joseph10097 8 лет назад +1

      +Arend Peter Castelein Exactly! Thought the exact same thing.

    • @B20C0
      @B20C0 7 лет назад +14

      Also not hard to include it. Of course I can do it myself but it kinda misses the point of an educational video to talk about the theory and don't display the outcome.

    • @meepk633
      @meepk633 7 лет назад +2

      Also, there were examples. Just look closer.

    • @Triantalex
      @Triantalex 14 дней назад

      false.

  • @PixelOutlaw
    @PixelOutlaw 9 лет назад +6

    A lot of color changing filters can be explained by simply using the intensity of a pixel to map along a range of colors. No kernel matrix required. (Colorize, Sepia etc). For a fun bonus, you can make a nice gradient of colors representing a hightmap landscape of ocean and hills and map that to Perlin Noise for procedural 2D continents or maps. :D

  • @tminus200
    @tminus200 6 лет назад +4

    I suggest making a video discussing the compression and manipulation of audio files. There are some parallels between manipulating audio files and compressing JPEG files via Discrete Cosine Transform. It would be excellent to connect the dots! Great work!

  • @Soundole
    @Soundole 7 лет назад +20

    This was a fantastic explanation, and I really appreciated the graphics used to demonstrate the processes.

  • @fukyougooglification
    @fukyougooglification 8 лет назад +6

    i love the way this guy talks, awesome

  • @AlexanderMcNulty92
    @AlexanderMcNulty92 7 лет назад +2

    he casually gave us the most concise summation of Standard deviation i've ever heard.

  • @logicalfundy
    @logicalfundy 9 лет назад +11

    An interesting optimization of the two filters shown here (and other "separable" filters) is that, even though this example shows a 2D kernel - you can actually use two 1D kernels. One vertically, the other horizontally. On small kernel sizes, this doesn't make much of a difference. However, as the kernel gets large, it makes a tremendous difference. Imagine, if you will, applying a 25x25 kernel on every pixel of the image. That's averaging 625 values per pixel. Now, imagine if you did it in 1D: one pass is 1x25, the other 25x1. Now you're averaging only 50 values per pixel, which is over 12 times as fast.
    I was actually experimenting with making poster-size images once and the open source software I was using had the 2D kernel, and it was quite slow for large kernel sizes. I was able to make the blur much faster by doing that plus using multiple threads.

    • @logicalfundy
      @logicalfundy 9 лет назад +3

      You blur the image that was created by the previous pass.

  • @knighty
    @knighty 9 лет назад +14

    Something that probably should have been mentioned relating to gaussian blurs is that the window for them mathematically is infinite. The function tends to zero but never reaches it, and thus every pixel technically has an effect on every other pixel. The actual kernel size is determined by some arbitrary cut off where the function reaches a sufficiently low value that it has no perceivable effect on the result.

    • @dominiccasts
      @dominiccasts 9 лет назад +1

      +knighty It would have been nice if they had mentioned this, as well as the number of standard deviations one should typically cut off the blur window. In my experience, 3 standard deviations is enough (at least for 8 bits per channel), but the reasons why one should choose that or another value, and the error that would result, would be an interesting video on its own.

    • @michaelpound9891
      @michaelpound9891 9 лет назад +3

      +knighty +Shadowfury333 We did record some stuff on this, but sometimes it better not to make them too long! I use +-2.5 standard deviations for my kernel radius, because that covers 98% of the weight under the distribution. Anywhere above two is going to look alright, but too large and obviously efficiency will be affected. The separability of the gaussian kernel (mentioned in some other comments) helps keep the speed up.

    • @knighty
      @knighty 9 лет назад

      +Michael Pound Oh yeah totally, it would be insane to try to go into every little detail, I just felt like it was notable because there was mention of kernel size changing because of gaussian radius and thought it might have been worth mentioning even briefly why we do change/restrict it.

    • @dl6691
      @dl6691 9 лет назад

      +knighty but that's a property of the normal distribution that he used to explain it with.

  • @DroidTsuenik9
    @DroidTsuenik9 4 года назад +1

    3:06 @Computerphile The Average filter in Photoshop is NOT using the mean/uniform kernel. All this average does is it finds the average value of all selected pixels and assigns it to all of them. The mean filter that the video talks about corresponds to the "Blur" option under Photoshop's filters.

  • @xavinitram96
    @xavinitram96 9 лет назад +9

    pleaaaase more videos with Mike!!! These are great!

  • @Eugensson
    @Eugensson 9 лет назад +85

    He forget to mention that if you make central value positive, and border values negative then you have a sharpness filter. and if you make centre value zero then you have a border filter.

    • @rjfaber1991
      @rjfaber1991 9 лет назад +2

      +Dmítrij Ačkásov Makes absolute sense, yes. Thanks for that bit of trivia!

    • @martinsavc3202
      @martinsavc3202 9 лет назад +4

      +Robert Faber Yeah, but not quite.
      If you want to find edges, you want to subtract values on one side from the values on the other. Or subtract the center from the surrounding values. You need to make sure that the weights in the kernel sum to 0 - this makes sure that when all the values are the same - a flat surface, the result of the convolution is 0.
      To sharpen an image you usually calculate the edge image and add it back to the original. This can be achieved using a single kernel, with the sum of the values being positive - usually you would increase the center value.

    • @Roxor128
      @Roxor128 9 лет назад

      +Dmítrij Ačkásov It also works the other way around: negative centre and positive everywhere else will also do sharpening.

    • @DeJayHank
      @DeJayHank 9 лет назад

      +Martin Savc More more info about simple edge detection, I suggest people look up Sobel filter. One of the most basic edge highlightning filters.

    • @shannonbruner542
      @shannonbruner542 9 лет назад

      +DeJayHank decedent

  • @glyochi8575
    @glyochi8575 3 года назад +1

    6:51 i like how the editor cut to that guy closing his calculator even though its not necessary

  • @Faxter313
    @Faxter313 9 лет назад

    I've actually heard some lectures about this stuff. But this described some aspects from another perspective - that made some things clearer to me. Thanks!

  • @ZombieKilla96
    @ZombieKilla96 9 лет назад +3

    Aaaah now my linear algebra class is starting to sound a lot more useful!

  • @jumanaalali8354
    @jumanaalali8354 7 лет назад +1

    you always save me before my finals ...thank you

  • @SharpblueCreative
    @SharpblueCreative 9 лет назад +1

    As a photoshop user and designer I can relate to this. Interesting to see what's going on under the hood when I'm manipulating an image

  • @somtoachu5704
    @somtoachu5704 6 лет назад

    hey Computerphile this is the first of your videos am ever understanding

  • @ayushgupta5389
    @ayushgupta5389 7 лет назад

    Man you are awesome! Every video of your channel is so easy to understand and has in depth knowledge!

  • @Psychopatz
    @Psychopatz Год назад +1

    I'm always fascinated about how our technology works, thank you sir for giving us some basic abstraction to it, its more of a marvel now than a magic to me

  • @jstbillz
    @jstbillz 8 лет назад +4

    Wouldn't mind a full image processing course from you guys !

  • @sayantansarkar4409
    @sayantansarkar4409 5 лет назад

    That linking of sd, mean to gauss kernel was so good, it cleared a lot of confusions , thanks 🙂

  • @AntOfThy
    @AntOfThy 9 лет назад

    For more information on image convolution search for image magic examples, convolution. Also closely related is morphology, which in a sense is a image manipulation technique that includes convolution.

  • @reda29100
    @reda29100 Год назад

    3:14 who needs a blur when you have a potato!
    jk CF but that montage was lit!
    6:58 that's exactly what we humans call "not edges." Blurry images, well, blur the lines between high contrasting pixels of colors (thhe marginalized ones), which we would say about "where are the edges?"
    It's a "fault", or a flaw of the images/hardware (input) themselves, not the processing algorithm itself.

  • @username17234
    @username17234 4 года назад +18

    Kernel convolution is my new favourite fancy alias for a weighed average.

  • @Tumbolisu
    @Tumbolisu 9 лет назад +11

    But simply taking the average will give you something that doesn't look as good. All numbers stored in an image are actually the squareroot of the original real-life thing (if it would be a photo). So the math needed to get the correct value will need some x^2 kind of stuff.
    This is most noticable when bluring the two edges where one edge is red and the other is blue, or red and green, or blue and green.

    • @L4Vo5
      @L4Vo5 9 лет назад

      +Tumbolisu 1. They already explained that in a video
      2. this is how to handle an image, if some images have to be square rooted (im sure there are some kind of HD color images where that doesn't happen) or not is another problem (else i should say that even before blurring the image, you need to turn on the computer!! wich is true, but it's another problem).

  • @buggaboo2707
    @buggaboo2707 Год назад

    4:34 The area under the bell curve is equal to 1 ( 100% )... you can't just draw a bell curve fatter ( more variance ), without making it shorter at the mean
    Thank you for the informative video though, I learned from it :)

  • @Tjekr
    @Tjekr 8 лет назад

    The video's with Dr Mike are really good. Very interesting and nice pace in the editing

  • @danielgrace7887
    @danielgrace7887 8 лет назад

    Dr Mike Pound is the dude!

  • @DeJayHank
    @DeJayHank 9 лет назад

    Love that you're doing videos about image filtering. You should do one about Canny Edge detection now that you've laid out the basics :D

  • @RisinT96
    @RisinT96 9 лет назад +2

    Oh man, when he said kernel convolution it reminded me of the horrible "sampling and reconstruction" from "signals and systems" where you have to convolute the sampled signal with a kernel to get back the original signal.
    (and the whole Nyquist-Shannon sampling theorem)

    • @darksteel78
      @darksteel78 9 лет назад

      I feel your pain. After I took a signals and systems class I never wanted to do a Fourier/Laplace transform by hand or impulse response ever again. Lol.

    • @RisinT96
      @RisinT96 9 лет назад

      darksteel78 my exam is in a couple days and I hope that I will not have to do any of those again without the help of matlab. :)

    • @darksteel78
      @darksteel78 9 лет назад

      good luck :)

    • @paabloojc
      @paabloojc 8 лет назад

      +darksteel78 hnmm

  • @nightblind
    @nightblind 6 лет назад

    Maybe a video for how cheby1 and Butterworth work? Basically a data filtering video. Cheers, awesome explanation boys.

  • @teekanne15
    @teekanne15 9 лет назад

    What Kind of accent is his? I think that's one of the best sounding ones I've heard and the voice is really good too

  • @vabalokis
    @vabalokis 9 лет назад

    always wondered how they worked , and its calculated easier than i imagined , cool stuff

  • @AuthenticTerrificRickCastle
    @AuthenticTerrificRickCastle 9 лет назад +1

    wow this is completely amazing I was wondering how different blurs differ!
    could you please explain how so-called "Photoshop Lens Blur" works? The one with bokeh effect and different polygonal shapes of aperture.
    How similar it is to photoshop "shape blur"?

  • @reefstarnes839
    @reefstarnes839 2 года назад

    I was looking for a video like this. Thank you for the simple explanation!

  • @fr33doom
    @fr33doom 9 лет назад +2

    awesome explanation!

  • @frankowalker4662
    @frankowalker4662 4 года назад

    Thank you for this. I've been creating and using these filter kernals (?) since the 90's, and never knew what they were or how they worked. LOL. PPaint on the Amiga lets you set your own parameters for some cool effects.

  • @chandusr1
    @chandusr1 6 лет назад

    Thanks for the video, great explanations !!! I spent 1 hr in some online video lecture(I don't want to name it) to understand what filters are and this video just explained me in ~8 min. I'm learning computer vision, could you guys please make a video on 'Image descriptors'

  • @mahoneg
    @mahoneg 6 лет назад

    Blast from the past for me. In the 80s I was doing edge detection with Gould equipment at NYU. Then I went to finance. ...

  • @rjfaber1991
    @rjfaber1991 9 лет назад +2

    So how does the "Despeckle" option in Photoshop work? I always find that a much better way to remove noise than just blurring everything, because blur always preserves at least some of the noise, especially if the noise is coloured and not monochromatic...

    • @Folopolis
      @Folopolis 9 лет назад +1

      +Robert Faber Assuming it works similarly to the noise removing filter in GIMP, it's a layering of many filters. First, it computes the median and quartile values of the pixels in the original image under the kernel, to find outliers. It then applies a Gaussian filter, but applying where the outliers are.

  • @alihsanelmas
    @alihsanelmas 5 лет назад

    A great video for getting into image filtering and processing!

  • @BigyanDhital
    @BigyanDhital 9 лет назад

    This was very interesting. Want more of these

  • @jackdumanat49
    @jackdumanat49 9 лет назад +1

    2d convolution is also used to make john conway's game of life. I used to make it such that each reference cell check all the cells around it then decides to die or live. Then i came a cross this that does everything and is more efficient than my original code.

  • @AG-lc5mn
    @AG-lc5mn 8 лет назад

    Loved the video! I'm studying neuroscience and it helps a lot

  • @normconel2907
    @normconel2907 9 лет назад

    I hope they do more of this easy to understand stuff

  • @jostein6581
    @jostein6581 9 лет назад

    Great video! Any plans on showing interpolation on images? Would be great to show the standard nearest, bi-linear and bi-cubic interpolation to regular grid images, but also scattered data interpolation to irregular grids for reconstructing images using RBF or Gaussian Process.

  • @31337flamer
    @31337flamer 8 лет назад

    best computerphile vids.. :O the standard gaussian blur in photoshop had bad edges cuz it used empty pixel data from outside the picture .. changed in cs3 ^^ box blur is still best but gaussian has nice edges now

  • @konstantinrebrov675
    @konstantinrebrov675 6 лет назад

    Great Lecture! Great Professor! Great Chanell!

  • @승현-r4q
    @승현-r4q 3 года назад

    Very informative, many thanks!

  • @johnvonhorn2942
    @johnvonhorn2942 8 лет назад

    So Dr Pound's Kernal of one's is called "Poundland" because everything is one pound. Coined a new SI unit there - The Poundland. Surely that's got to be worth a Nobel Prize? I'll swing by Nottingham later on and pick up my PhD. You're welcome.

  • @colinmaharaj
    @colinmaharaj 6 лет назад +1

    If I take off my receptacles (I am short sited) what type of blur is that?

  • @DannyJulian77
    @DannyJulian77 6 лет назад

    How would you define noise in an image? An abrupt change in color from one pixel to another?

  • @tymothylim6550
    @tymothylim6550 3 года назад

    Thank you very much for this video! I learnt a lot from these explanations!

  • @eldelarechorga
    @eldelarechorga 5 лет назад

    Very well explained

  • @HaiHoang-iv9rj
    @HaiHoang-iv9rj 3 года назад

    A great explanation

  • @Aevatheone
    @Aevatheone 7 лет назад

    Awesome explaination! Exactly what I needed to fill i gaps!

  • @YalnekH
    @YalnekH 8 лет назад +6

    Those Gaussian's should have different peak heights!

  • @WiskerousPirate
    @WiskerousPirate 7 лет назад

    Great Video!! Very Informative!!

  • @Deddiward
    @Deddiward 7 лет назад

    What does 'intensity of the pixel' mean exactly?
    I mean, a pixel is composed of R,G,B,alpha values.. do you apply the matrix convolution to all 4 of them? Or do you do something different?

  • @rawlamb5197
    @rawlamb5197 7 лет назад

    I would have liked to have seen more talk about how you get a picture to be expressed as a grid of numbers and how you would do this on an RGB image. For example, how does the pixel Mike first manipulates become just 64? I'm assuming this was done on a gray image because that's probably the easiest way to explain filters before introducing colour channels. Great video, anyways!

  • @sammcewan9544
    @sammcewan9544 5 лет назад +19

    6:37 "This is where we cut"
    Couldn't do the quick maffs himself ha

  • @harchan6274
    @harchan6274 2 года назад

    Thanks a lot for this video, its was really helpful

  • @Sh-hg8kf
    @Sh-hg8kf 3 года назад

    Sorry if my question is silly, I'm a computer noob. What do those pixel value nunbers really represent in the image? Color? Brightness?

  • @harsh7704
    @harsh7704 5 лет назад +1

    can someone explain me: while comparing mean blur kernel and Gaussian blur kernel , why we divide by 16 not 9 in case of Gaussian blue kernel

    • @crunchyduck
      @crunchyduck 5 лет назад

      Harshvardhan Matta It's the value of all the multiplication done.
      1+2+1+2+4+2+1+2+1.

  • @235deer
    @235deer 5 лет назад

    For the gaussian filter how did you come up with that square of numbers (x1, x2, x1, etc.) A gaussian is intended to take numbers at random, I thought?

  • @boydzhang
    @boydzhang 8 лет назад

    very illustrative, thanks!

  • @sina_m_123
    @sina_m_123 Год назад

    Great Explained!

  • @taylorhetherington745
    @taylorhetherington745 7 лет назад

    should you average the RGB values before hand or do you have to make 3 passes?

  • @TrebleWing
    @TrebleWing 9 лет назад

    This guy is my favorite

  • @nixie2462
    @nixie2462 9 лет назад

    Now please please, do a sharpen filter explanation!

  • @gabrielsaraiva1000
    @gabrielsaraiva1000 8 лет назад

    I'm a begginner and I understood the blur functionality shown in the video but I can't understand how its the same for filters. Like how blurring an image can apply a filter to it?

  • @jdgrahamo
    @jdgrahamo 9 лет назад

    Very interesting and helpful, thank you.

  • @spasovan
    @spasovan 4 года назад

    very nice explaination

  • @ThalesII
    @ThalesII 9 лет назад +1

    What sort of optimization could be done to avoid having to look up several pixels for every one you have to process?

    • @MattiEskelinen
      @MattiEskelinen 9 лет назад +3

      +ThalesII Look up the convolution theorem and fast fourier transforms. The theorem basically says that one can calculate a convolution of two functions (in this case, the image and the kernel) as a product of the Fourier transforms of the functions. Using fast discrete fourier transforms, this is more efficient than the naive convolution presented here.

    • @Lanyovan
      @Lanyovan 9 лет назад

      +ThalesII If you cut the image into smaller pieces and process piece by piece a lot of pixel lookup will be faster due to caching (at least faster than going line by line on the whole image). Filters can also be parallelized well since the target pixels are calculated independently.

    • @fafetico
      @fafetico 9 лет назад

      +ThalesII You could still optimize convolution by using separable and recursive filter algorithms.
      Basically, in separable filters, instead of using a nxn convolution mask you would use a 1xn and a nx1, making it more efficient.
      And in recursive filters, you would use the outputs of previously processed pixels in order to lower the number of pixels you have to look for the next pixel being processed, reducing the number of computations needed.

    • @Theraot
      @Theraot 9 лет назад

      Search the document "Image Convolutionwith CUDA" you should find it on nvidia dot com as convolutionSeparable dot pdf - happy reading.

  • @World_of_OSes
    @World_of_OSes 6 лет назад

    What do you do in your work?

  • @yspaiyogesh
    @yspaiyogesh 5 лет назад

    If we apply the gaussian filter on a border pixel, do we divide the sum by 16 or only by the sum of the corresponding values in the kernel?

  • @robertjif6337
    @robertjif6337 7 лет назад

    hi sir, Do you have any recomendation on which filter should I use if my objects are chinese words (Kanji) ?

  • @nhilario7638
    @nhilario7638 4 года назад

    This is a very old video. But I'm actually starting at all this and I tried programming a function that does exactly that (an image convolution), but when I calculate a reasonable kernel size for the gaussian blur (as well as the kernel values themselves) the image just gets darker... It's so frustrating because I normalized it, so the sum of everything is 1. I'm getting pretty desperate to be honest!!

  • @Teneban
    @Teneban 2 года назад

    Is it possible to remove gaussian blur? As in, guess the original values from the averaged ones?

  • @zihanqiao2850
    @zihanqiao2850 5 лет назад

    Really nice!

  • @ShivamSharma-me1sv
    @ShivamSharma-me1sv 3 года назад

    can we do a similar video on sift operator?

  • @jorgevicencio3573
    @jorgevicencio3573 4 года назад

    thanks a lot for this lesson

  • @trunc8
    @trunc8 5 лет назад +1

    Isn't this wrong? The process defined is cross-correlation right?

    • @zutru
      @zutru 4 года назад +2

      Yeah, what he is doing is NOT a Convolution, it is a Correlation. Sure, with symmetrical kernels the result will be the same for Convolution and Correlation, but with non-symmetrical kernels it will differ. It is so irritating that he keeps saying "I am doing a Convolution", while he is clearly doing a Correlation....

  • @Roy192
    @Roy192 9 лет назад

    What a strange coincidence... I had a class around when this video came out, where my teacher explained exactly this. Are you guys following me?

  • @noureldinmoustafatutorials2512
    @noureldinmoustafatutorials2512 2 года назад

    amazing stuff👌

  • @Vipenstrike
    @Vipenstrike 9 лет назад

    Thanks for the video!

  • @annanyatyagip
    @annanyatyagip 4 месяца назад

    thank you this was great!

  • @hugabuga-il6125
    @hugabuga-il6125 4 года назад

    Undestood👏👏👏 thanks♥♥♥

  • @zutru
    @zutru 4 года назад +1

    Why are you talking about "Convolutions" while doing a "Correlation"? Sure, for symmetrical kernels you will get the same result, but in general, they are not the same!

  • @moccaloto
    @moccaloto 3 года назад

    Could Game Of Life be said to be a kind of kernel convolution?

  • @ibanferrobanales867
    @ibanferrobanales867 4 года назад

    How would this Gaussian Blur be done in a RGB image or other kind of images??