Finding the Edges (Sobel Operator) - Computerphile

  Рет қаралды 508,457

Computerphile

Computerphile

Күн бұрын

Пікірлер: 402
@towaly3
@towaly3 5 жыл бұрын
This is brilliant. This stuff seems so abstract and hand wavy when you see it in action but then when you get to the low level of it its really quite simple. Amazing
@Jonas-mg5wx
@Jonas-mg5wx 8 жыл бұрын
The sobel filter actually already includes a Gaussian filter. The "2"s in the filter kernel are not meant to preserve pixels in the centre but to smooth the image and reduce the noise in the output. The sobel filter in x-direction includes a Gaussian filter in the y-direction and the other way round. The sobel filter is basically a combination of the prewitt and Gaussian filter.
@shiphorns
@shiphorns 8 жыл бұрын
Yep. Even the Prewitt operator reduces noise a little bit, since it is a 3-row (or 3-column) mean.
@kukuster
@kukuster 4 жыл бұрын
In my humble personal experience recently, weighting central pixels more improves the quality of diagonal edges extraction (those that are not straight x-direction or y-direction)
@yashgupta3127
@yashgupta3127 4 жыл бұрын
I actually opened this video to get this answer only my proff said that shobel also gives averaging effect and I was all confused that how,Can you explain briefly cuz it's quite hard to visualise what you have written that guassian filter is there.
@mich2k1
@mich2k1 Жыл бұрын
I came here for this, and after 6 years still no answer on how these 2 are gaussian filters
@Frumpbeard
@Frumpbeard Жыл бұрын
​@@mich2k1 a 3x3 Gaussian filter is: [1, 2, 1; 2, 4, 2; 1, 2, 1] A Prewitt operator is: [1, 0, -1; 1, 0, -1; 1, 0, -1] And: [1, 1, 1; 0, 0, 0; -1, -1, -1] What do the Sobel operators have in common with the Gaussian filter that the Prewitt operators do not?
@TechyBen
@TechyBen 9 жыл бұрын
When I was a kid, I saw edge detection in software as some sort of magic. I just could not figure out how it was possible. Though I never did try to think of the maths involved. Thanks for making such a hidden world come to life and make sense and reality. :)
@TheGrandexeno
@TheGrandexeno 9 жыл бұрын
+David Last Nerd kids on yt are the worst, I swear...
@KabooM1067
@KabooM1067 9 жыл бұрын
+David Last I don't get why you're showing off.... To whom?
@official-obama
@official-obama 3 жыл бұрын
@@TheGrandexeno huh?
@TheGrandexeno
@TheGrandexeno 3 жыл бұрын
@@official-obama why are you here and not on KZbin kids?
@msdfsdfe2533
@msdfsdfe2533 8 жыл бұрын
Thank you so much. You explain how sobel works better in a 7 min video, than in an entire course over the semester at the college where I study.
@bowi1332
@bowi1332 3 жыл бұрын
This is the best channel to explain to people why mathematics can be useful and fun.
@myrixtyzm3524
@myrixtyzm3524 9 жыл бұрын
love this guy.
@nikhilrout3287
@nikhilrout3287 9 ай бұрын
this is beautiful. watched it about a week ago and finally implemented a real time sobel filter in verilog for FPGAs today
@scriptkiddie7485
@scriptkiddie7485 7 жыл бұрын
This is probably my favorite youtube video I have every seen in my life.
@coemgeincraobhach236
@coemgeincraobhach236 3 жыл бұрын
from unnecessarily complicated math notation to cut outs of printer paper from the 80's, delighted i found these videos! thanks!
@LovePeace2025
@LovePeace2025 8 жыл бұрын
My computer vision professor should be fired...
@khaldrogo9451
@khaldrogo9451 6 жыл бұрын
same here lol
@ajinkyarathod5180
@ajinkyarathod5180 4 жыл бұрын
This made me laugh so hard
@CatJell
@CatJell 4 жыл бұрын
same
@MusicToTheWolf
@MusicToTheWolf 4 жыл бұрын
This is such basic stuff, if you study computer science you should understand it anyway really..
@ashley-rh9wj
@ashley-rh9wj 4 жыл бұрын
i guess i just hate powerpoint lectures
@joejamesusa
@joejamesusa 2 жыл бұрын
Excellent explanation of the Sobel edge detection algorithm in easy-to-grasp terms. Love it!
@HazardousMoose
@HazardousMoose 9 жыл бұрын
I love how these videos match up with my curriculum:D Had to program an application that takes an image, converts it to grayscale, smooths it with a mean blur, then applies a sobel filter. And based on the results it would find the chain of pixels crossing the least edges, and would remove it from the image. A.k.a. content aware resizing...
@AdeonWriter
@AdeonWriter 9 жыл бұрын
As a C++ programmer, I'd love a why C# rocks rant. I like having my eyes opened!
@Spongman
@Spongman 9 жыл бұрын
+Adeon Writer looking at his code i'm guessing a C++ programmer wouldn't be blown away at his rant. but i'd take a look at 'Expression', 'yield return', PLINQ and 'async/await' for some killer c# features.
@AximVidya
@AximVidya 9 жыл бұрын
+Spongman S I'm guessing that the code is deliberately verbose, in order to be as understandable with as little programming knowledge as possible, and I would say it's pretty good at that.
@DeJayHank
@DeJayHank 9 жыл бұрын
Excellent video about this! I never thought about extracting the edge angle before. This might come in handy in combination with a Hough Line transform.
@ainymunnee7780
@ainymunnee7780 8 жыл бұрын
if I had to name a super hero, it would be you! you saved my day I have an exam tomorrow and I was on the verge of nervous breakdown, you saved me! thanks a million
@tastelesstouch
@tastelesstouch 9 жыл бұрын
Perfect timing! Keep the image processing videos coming!!!
@emneemne
@emneemne 6 жыл бұрын
Best teacher ever! (just passed my computer vision class - thank you!)
@Roxor128
@Roxor128 9 жыл бұрын
To all those complaining about the example being in C#, man/woman up and just convert it to your language of choice! I haven't used it, but I imagine it's going to be very similar to C++, Java, or HLSL, none of which are difficult to convert to each other.
@RacingRalphEVO
@RacingRalphEVO 3 жыл бұрын
This guy is so amazing that I even won't be complaining about the code being in c# :D
@bdulagadadasev6495
@bdulagadadasev6495 6 ай бұрын
Thank you, really. Your explanation is easily understandable and comprehensive.
@b.b.4969
@b.b.4969 5 жыл бұрын
I:m SO glad i found this channel THANKYOU!
@U014B
@U014B 9 жыл бұрын
C#? You mean Db?
@MrAkpla
@MrAkpla 6 жыл бұрын
Three years you waited, and your musical pun has finally been appreciated
@grn1
@grn1 3 жыл бұрын
@@MrAkpla 2 more years and they got a chuckle out of me.
@bruhmoment5227
@bruhmoment5227 3 жыл бұрын
@@grn1 and 2 months
@hadirotafoua5381
@hadirotafoua5381 6 ай бұрын
love such confidence in speaking .. thanks big prof
@rayanemesbah7815
@rayanemesbah7815 Жыл бұрын
The sound of marker (pen) is painful but the video is so appealing I couldn't stop watching
@rosssharma542
@rosssharma542 9 жыл бұрын
Nice video, as always. But here's a little tip. If you're shooting a person writing with their right hand, shoot them from the left. And vice versa if they're left-handed.
@isaacaskey1410
@isaacaskey1410 4 жыл бұрын
Great video, straightforward and easy to understand!
@boratsagdiyev3936
@boratsagdiyev3936 5 жыл бұрын
this really helped with my digital signal processing lab today. thanks
@usama5015
@usama5015 5 жыл бұрын
excellent teaching . Answer to the counter question are clearly demonstrated.
@anteconfig5391
@anteconfig5391 6 жыл бұрын
I gotta re-watch some numberphile or PBS Infinity Series videos. It took me a while to understand why the Pythagorean theorem works here. I'm starting to realize things I should've realized before and it's making me wonder how much more I didn't understand the first time through.
@bekay7663
@bekay7663 Жыл бұрын
OMG TYTYTY. Im doing this right now for cs50x and I got kicked out of highschool during covid, so this helps me a lot.
@uniquehandle767
@uniquehandle767 7 жыл бұрын
These are the coolest videos.
@firstnamelastname4752
@firstnamelastname4752 9 жыл бұрын
I don't code, so as an off-topic aside you can create a cheap edge-map in Photoshop by duplicating an image into another layer, gaussian-blurring the top one slightly, then setting its blending mode to negative. You might need to fiddle with the blur size and also dump a curves layer on top to brighten/darken it.
@Roxor128
@Roxor128 9 жыл бұрын
+Firstname Lastname Congratulations. You've independently recreated the Unsharp Mask algorithm. No, seriously. That's how it works. It's the difference between the original image and a blurred copy, though I can't remember which order you're supposed to put the two in the subtraction stage.
@firstnamelastname4752
@firstnamelastname4752 9 жыл бұрын
Oh. Well that's cool. Yeah I can't remember the order either, I just assumed blurred on top.
@MAP233224
@MAP233224 Жыл бұрын
you can look into "the difference of gaussians"
@squidcaps4308
@squidcaps4308 9 жыл бұрын
Good timing, just modifying Sobel edge detection shader code, trying to figure out something neat out of it, maybe playing around with z buffer.
@mfaraday4044
@mfaraday4044 4 жыл бұрын
Thank you wonderfull explaination . Finally I found this channel.
@juanrada1040
@juanrada1040 9 жыл бұрын
What a great explanation, thanks for this material.
@rikvandenreijen
@rikvandenreijen 6 жыл бұрын
Awesome video, you have a very nice way of teaching!
@AlexanderTrefz
@AlexanderTrefz 9 жыл бұрын
DO THE WHY C# ROCKS RANT! C# is just great.
@Jet-Pack
@Jet-Pack 9 жыл бұрын
+Alexander Trefz I love it, too :D
@zik2000
@zik2000 9 жыл бұрын
hahahahah! nice try microsoft!
@AntiHeadshot
@AntiHeadshot 9 жыл бұрын
+Alexander Trefz Get this guy to the top :D
@Lvl100Boss
@Lvl100Boss 9 жыл бұрын
+Alexander Trefz C# is trash
@AlexanderTrefz
@AlexanderTrefz 9 жыл бұрын
Tard Al Yes, please give him more reasons to stuff you up with all the objective facts why C# is most certainly among the best languages available, if not the best. Please.
@manon-gfx
@manon-gfx 9 жыл бұрын
Really helpful video for getting edge detection in my toon shader to work! thanks!
@jicherry6750
@jicherry6750 3 жыл бұрын
Great explaination sir. Thank you very much!
@MrTridac
@MrTridac 9 жыл бұрын
I like Mike. I dislike C# but I'd still like to have the "Why C# rocks" rant.
@ihrbekommtmeinenrichtigennamen
@ihrbekommtmeinenrichtigennamen 9 жыл бұрын
+MrTridac I'd like to know why you dislike C#. Not to start a flamewar or anything but just to hear different opinions on it.
@PapoochCZ
@PapoochCZ 9 жыл бұрын
+Ihrbekommtmeinen Richtigennamennicht : Bad portability
@ihrbekommtmeinenrichtigennamen
@ihrbekommtmeinenrichtigennamen 9 жыл бұрын
+Papooch What kinds of programs are you writing? For what kinds of clients? I'd like to know why portability is important for you. Aside from that: Mono can do quite a lot and it supports WinForms. Unfortunately though it does not support WPF, but that would also be really hard to do. Edit: Also this is not a problem with C#, it's a problem with .NET in general.
@derstreber2
@derstreber2 9 жыл бұрын
+MrTridac I agree the rant would be insightful.
@MrTridac
@MrTridac 9 жыл бұрын
Ihrbekommtmeinen Richtigennamennicht It's meant to be used with/for .net programs and I'm just not a big fan of VM's in general (includes java). I know, I'm old school but I like me some neat C++ without sharps and CLIs :)
@Caboom11
@Caboom11 2 жыл бұрын
These videos helped me SO much! Thanks heaps
@markurban9113
@markurban9113 8 жыл бұрын
You can run Sobel on color, you will get three X,Y gradients one for each channel, sometimes objects are visible better in just R or B... or you can do a weighted average of all three which might sometimes give a better result than just running it on grayscale.
@bilbopraktikums509
@bilbopraktikums509 8 жыл бұрын
Dude, I love you. Seriously, I do.
@quicksilver5413
@quicksilver5413 2 жыл бұрын
Thank you for explaining it so clearly!
@p4radox0
@p4radox0 9 жыл бұрын
Please, more of this guy!!
@sprites
@sprites 9 жыл бұрын
Fascinating. After watching all of computerphile's edge detection videos I'm really interested to learn more about computer vision and how it uses these edges. How would you avoid processing a larger image for edge analysis? Keypoints? Is there an algorithm that can skim an image for just the main edges?
@airjuri
@airjuri 8 жыл бұрын
thank you, we made bounce angle calculations using sobel operator :D
@himanshu2891
@himanshu2891 4 жыл бұрын
such amazing explanation. i paid lakhs to my univ hoping i'd get this.
@peschebichsu
@peschebichsu 3 жыл бұрын
Love all your videos! Would be nice if you made something about image warping. Seems like a hard to understand but interesting topic for me. So perfect for you to make an easy to understand video :D
@dougsmith3372
@dougsmith3372 6 жыл бұрын
At 1:28 he points to the paper and says "this location here." What location? I cannot see it. His hand is in the way. Use a pointer and make sure the viewer can see what is being pointed at.
@JacobFreeze
@JacobFreeze 6 жыл бұрын
Thanks for this very clear explanation!
@francoisantoinejacques8843
@francoisantoinejacques8843 4 жыл бұрын
pretty clear, thanks a lot for your work !
@theodoretourneux5662
@theodoretourneux5662 2 жыл бұрын
thanks for this great video! very helpful and clear!
@SO-dl2pv
@SO-dl2pv 5 жыл бұрын
in 5:37 you mean atan2 instead of atan because atan function will have a problem when Cx = 0 or when both Cx and Cy are equal to 0.
@LeifPeterson3D
@LeifPeterson3D 9 жыл бұрын
I've used Sobel Edge detection to make a video game render post-process, well, I multiply a crunched (black and white) and clamped (0-1 scalar), then inverted to get nice black edges.
@Roxor128
@Roxor128 9 жыл бұрын
+Leif Peterson I've done something similar in HLSL to make a sort-of toon shader for video playback. I only used a single kernel with different weights, though. 5*5 kernel with -24 in the centre and 1 everywhere else.
@LeifPeterson3D
@LeifPeterson3D 9 жыл бұрын
+Roxor128 doing the game post-process involved jittering the depth buffer, or, the World Normal, which can allow you to get interior edges
@eideticex
@eideticex 9 жыл бұрын
+Leif Peterson Sounds like the technique I've used for edge detection in a deferred renderer. I started with a sobel filter but found it too noisy and didn't like the idea of blurring to solve the noise since that would kill some of the desired edges. Then incorporated view space normals by analyzing the trend of the normals. Flat out multiplied the trend by the sobel result and it produces very nice edges that mimic the style you see in old Japanese ink drawing. It really didn't matter if the normals were view or world space since all I analyzed them for was trends along the surface.
@Roxor128
@Roxor128 9 жыл бұрын
+Leif Peterson I've done that, too. Just not in a shader. Pure CPU implementation with a raytracer. Build depth and normal buffers while doing the main rendering, then process them to get edges. Even got the edges in reflections.
@MrBoobcube
@MrBoobcube 8 жыл бұрын
I like your choice of shirt given the content.
@jackfever405
@jackfever405 8 жыл бұрын
To find the "Ultimate Edge" apply the Tony Robbins filter. When this filter is applied to images of people it detects those who are easily separated from their money. Sometimes this filter is also known as the "Fools" filter.
@saivenkat5125
@saivenkat5125 6 жыл бұрын
good explanation....can you also explain about the gabor filters too??
@ihorprotsenko5431
@ihorprotsenko5431 6 жыл бұрын
So cool! Thank you for your explanation
@eddiej5974
@eddiej5974 5 жыл бұрын
Amazing work, keep them coming! I was able to implement this from 'scratch' in Python. Can you do a video on the Harris Corner detection algorithm? The math is seems a lot more involved and I'm having trouble converting the math to actual code :(
@SuperDayv
@SuperDayv 7 жыл бұрын
Can you explain what you said at around 5:18? If there is a strong horizontal edge but no vertical edge this would correspond to a medium value when they're combined. But isn't this a genuine edge? Shouldn't this have a large value? Also, how could there be a strong horizontal and vertical edge in the same location? Would that be a diagonal?
@aitortilla5128
@aitortilla5128 6 жыл бұрын
Brilliant and quite useful.
@davewasthere
@davewasthere 5 жыл бұрын
Fantastic... Really loved it! And keen on the 'Why C# Rocks' rant. ;)
@SuperDayv
@SuperDayv 7 жыл бұрын
Super helpful, thanks!
@ehza
@ehza 4 жыл бұрын
beautifully explained
@vincentlopez464
@vincentlopez464 7 жыл бұрын
Thanks for this, big help for our thesis. You've earned a like and a sub from me.
@marioCazares
@marioCazares 5 жыл бұрын
Love these!
@Whateleyben
@Whateleyben 3 жыл бұрын
Hello I would really like to view Mikes code, but the link seems to be broken.
@krishnakethan
@krishnakethan 3 жыл бұрын
I hope I meet him one day and tell him how awesome he is
@nehalsonawane1042
@nehalsonawane1042 3 жыл бұрын
small things but so brilliant!
@mailoisback
@mailoisback 4 жыл бұрын
Where can I find the code he is talking about? The link seems to be broken.
@0707andy
@0707andy 8 жыл бұрын
"it looks good but it falls down quick" . Oh well, I guess that's what he said.
@chebkhaled1985
@chebkhaled1985 9 жыл бұрын
Thumbs up for using C# in image processing
@カラスKarasu
@カラスKarasu 8 жыл бұрын
Can you do a video about motion blur?
@OtokoInu
@OtokoInu 9 жыл бұрын
Very good video. Can you explain the operation of edge detection of Canny? This is more difficult that the operation of Sobel, because Canny should keep three operation.
@Computerphile
@Computerphile 9 жыл бұрын
+OtokoInu see canny video posted the day before your question :) (subscribe for updates!)
@SeptianSetiaCahyaPurnama
@SeptianSetiaCahyaPurnama 8 жыл бұрын
thanks for the video!
@kilésengati
@kilésengati 9 жыл бұрын
Is it possible to generate normal maps with the sobel generator? Seems like it could work.
@Crobisaur
@Crobisaur 9 жыл бұрын
I'd like to see a video about Laplacian Pyramids.
@anonanon3066
@anonanon3066 3 жыл бұрын
Wouldn't it be sensible to say... edgeFac = max(sobel_R, sobel_G, sobel_B), to account for edges that are very apparent in color images, but almost invisible in grayscale? EDIT: I've tried this, and it looks great!
@SwagDawg
@SwagDawg 7 жыл бұрын
I understand everything in the video besides the orientation of the pixel. How do you add color to the image? If it is grayscale, and the inverse tangent gets you a single number, how do you know what color that number should be??
@mschris685
@mschris685 5 жыл бұрын
I just wanted to see the video about neural networks but got told to watch this one first. Now I'm told I might want to go back to even another Video🤪 I wonder when I'll get redirected to a topic that's simple enough to not be based on something else😅
@weakamna
@weakamna 5 жыл бұрын
It seems like the link to the code is down =/. Maybe make a git repository somewhere with all the code from the videos?
@tomas.koranda
@tomas.koranda 4 жыл бұрын
is the code still accessible? The link doesnt seem to work.
@NNOTM
@NNOTM 9 жыл бұрын
Heh, that's funny. I just wrote a Canny Edge Detector yesterday for my Computer Vision class.
@jurgyy
@jurgyy 9 жыл бұрын
+NNOTM I was writing the Sobel filter for Digital Signal Processing class :P
@Starchface
@Starchface 9 жыл бұрын
+NNOTM That seems almost uncanny.
@NNOTM
@NNOTM 7 жыл бұрын
+Geklmintendon't of Awesome No, it was university
@o_poky9359
@o_poky9359 4 жыл бұрын
Just used laplacian
@NeilRoy
@NeilRoy 9 жыл бұрын
I still prefer good old fashioned C. No bloody ++, # etc... ;) With that said, I would love to see a C# rant on why it is good as I have never really played with it.
@manuelpena3988
@manuelpena3988 9 жыл бұрын
I don't know anything about this, but I would like to ask, why in the last part of the video, when saying that you want to get rid of the "high frequency edges" you use first a gaussian blur and then the sobel kernel. My question is... if you want to get rid of the high frequency why don't you use a low-pass filter? Thanks for the videos.
@Spongman
@Spongman 9 жыл бұрын
Your reasoning is correct. The gaussian blur is a low-pass filter.
@kogi04
@kogi04 4 жыл бұрын
Thank you for this
@shrirambalaji2915
@shrirambalaji2915 Жыл бұрын
Thank you so much sir
@MrGoatflakes
@MrGoatflakes 8 жыл бұрын
0:45 what does he say? "it's an approximation to a of an image"
@MrGoatflakes
@MrGoatflakes 8 жыл бұрын
nfsyh 88 thanks. Like the divergence?
@shiphorns
@shiphorns 8 жыл бұрын
Using both filters gets you the first difference in the x and y directions individually, which are the discrete equivalents of the first partial derivatives. The Sobel operator is actually doing a bit of blur-type averaging as well, since it's considering the rows above and below (or left and right) of the pixel of interest. These x and y partial differences are thus the x and y components of the a discrete equivalent of the gradient of the image. This isn't the divergence, but you could use it to calculate a divergence for a pixel, by essentially doing yet another kernel convolution on the matrix of the gradient values at each pixel, to sum up the gradients of surrounding pixels. The resulting image would be one where the value of each pixel would tell you how much gradients in the neighborhood of that pixel are pointing towards or away from that pixel. That would be more like a divergence.
@MrGoatflakes
@MrGoatflakes 8 жыл бұрын
Adam Smith isn't the divergence just a vector of all the possible partial derivatives? Excuse my ignorance, I haven't taken multivariable calculus and every time I have tried to teach myself I have either gotten bogged down in review of single variable or not been able to follow it :P
@shiphorns
@shiphorns 8 жыл бұрын
The gradient can be written as a vector of the x- and y-direction partial derivatives, this is probably what you're thinking of. Divergence is function of a vector field that gives you a scalar value (the magnitude of divergence at some point in the field). For a continuous function you get the divergence from integrating over an area (really just a contour integral in this 2d case) of the vector field around the point being evaluated (e.g. a spherical surface around the point), and taking the limit of this integral as the area of this surface goes to zero. This gives you a scalar value that is a measure of how much the vector field is pointing towards or away from the point. Because it doesn't make sense to speak of a limit going to zero for a discrete vector field, that's why I said you could get something that is a discrete analog to the divergence from doing a finite sum of the values of your discrete gradient over the pixels immediate surrounding the one being evaluated.
@MrGoatflakes
@MrGoatflakes 8 жыл бұрын
Adam Smith thanks, I was indeed thinking of the gradient and got confused :P
@lucaccinnocapuccinno607
@lucaccinnocapuccinno607 2 жыл бұрын
Can the kernel matrix have any values as long as their absoulte value it's symmetrical on both sides? For example can we have [[-2, -4, -2], [0,0,0], [2, 4,2]] instead of [[-1,-2, -1], [0,0,0], [1,2,1]] as shown in the video.
@NitinSethi22
@NitinSethi22 7 жыл бұрын
Amazing!
@TacoDude314
@TacoDude314 9 жыл бұрын
if you wanted edges of colors, could you convert it to HSV and do this same process on the hue values?
@cashphattichaddi
@cashphattichaddi 8 жыл бұрын
Awesome!!
@hilalafrihjuhadassyifa1479
@hilalafrihjuhadassyifa1479 9 жыл бұрын
whoa, it's there when me exam yesterday... 😁
@grandecatastrophe
@grandecatastrophe 4 жыл бұрын
Thank you!
@brendathompson3758
@brendathompson3758 4 жыл бұрын
Hi there -- how do we determine the threshold at which the G value is high enough to indicate the presence of an edge? Especially since the range of all pixel values can be quite large, it is possible to have an edge with a relatively low G value. But in general, how do we pick this threshold?
@Theraot
@Theraot 9 жыл бұрын
+ComputerFile - I have just finished reading the "readme.txt" from the linked "convolution.zip" and led me tell you that "If you literally can't find a windows machine" you can have mono run the code on Linux or Mac OS X via Xamarin Studio. Edit: just tested it, Xamarin Studio will open it, build it and run it. Edit 2: I notice there is only one relevant code file and there is no UI, which is great because it means you can have Mono run it from command line. The more daring and tech savvy have an option if they can't install Mono: get a free account on Koding.com, they give a Virtual Machine for non commercial purposes... use it to install mono, and run it there.
@martinsavc3202
@martinsavc3202 9 жыл бұрын
+Alfonso J. Ramos (theraot) UI doesn't work in Mono?
@Theraot
@Theraot 9 жыл бұрын
WinForms works in Mono, also Gtk# and MonoGame / OpenTK - all those three are cross platform. And they have their own solutions for Android and IOs - but they never ported WPF - and never will. Note: there are also others projects for cross platform UI with Mono such as Mono Wxt and QtSharp. --- Being a single file with no UI makes it easy to compile an run from command line without any additional setup - so there is no need for Xamarin Studio / MonoDevelop. Edit: once you start passing multiple assemblies are references to compile the writing the command line starts to be error prone and look ugly... you could write a bash script for that... but I wont be bothered, there are tools for that! --- Edit: Long Live WinForms!
@nikhilsingh-hm6uz
@nikhilsingh-hm6uz 4 жыл бұрын
can filtering be applied after doing sobel edge detection for removing noise . Is is compulsory to apply in the beginning?
@jayschauer1347
@jayschauer1347 8 жыл бұрын
If you are using arctangent to determine the orientation of edges, what method is used to color them that gives a range from 0 to 2pi, instead of just -1/2pi to 1/2pi? (I saw that a full circle of colors were used). Edit: My best guess right now would be when passing the Gx and Gy data to the arctangent method, rather than just passing Gx/Gy, Gx and Gy are passed separately and then the method can produce full 360 degree orientations based on the signs of Gx and Gy.
@anhhuyham
@anhhuyham 5 жыл бұрын
Hi, can you make a video about Harris Corner Detection?
Canny Edge Detector - Computerphile
7:51
Computerphile
Рет қаралды 364 М.
But what is a convolution?
23:01
3Blue1Brown
Рет қаралды 2,8 МЛН
It works #beatbox #tiktok
00:34
BeatboxJCOP
Рет қаралды 41 МЛН
黑天使被操控了#short #angel #clown
00:40
Super Beauty team
Рет қаралды 61 МЛН
Video Game & Complex Bokeh Blurs - Computerphile
13:52
Computerphile
Рет қаралды 245 М.
Session 17 - Sobel Edge Detector - A Quick Understanding
7:00
Shriram Vasudevan
Рет қаралды 40 М.
How Blurs & Filters Work - Computerphile
7:52
Computerphile
Рет қаралды 562 М.
The Dome Paradox: A Loophole in Newton's Laws
22:59
Up and Atom
Рет қаралды 9 М.
Edge Detection Using Gradients | Edge Detection
10:44
First Principles of Computer Vision
Рет қаралды 101 М.
Detecting Faces (Viola Jones Algorithm) - Computerphile
12:55
Computerphile
Рет қаралды 372 М.
How AI 'Understands' Images (CLIP) - Computerphile
18:05
Computerphile
Рет қаралды 220 М.
Resizing Images - Computerphile
9:22
Computerphile
Рет қаралды 474 М.
How To Find Edges In Images: Sobel Operators & Full Implementation
6:28
It works #beatbox #tiktok
00:34
BeatboxJCOP
Рет қаралды 41 МЛН