Um I may seem really ignorant here, but what's this all bout lol. Like I usually follow everything grant does, but here I'm a bit lost. You seem to be familiar with the Julia Language and Pluto (whatever that is), and "image processing", can you please give me a lil background on whats the, like, industrial application/purpose of this tool/skill/process? [ also i have no programming experience, and this doesn't seem like the right place to ask this question but welp :D ]
@@resskyry1364 You can use many different languages for Computer Programming. Python, C, Ruby, Javascript, and Julia. To write computer code you can use different tools. You can run some code actually just in your command line, or you can even write it in notepad. Much like how Microsoft Word offers more tools then Notepad, different IDEs offer more tools for specifically writing code. I am new to Julia, but it sounds like Pluto is kind of like Google Docs for writing Julia. I think Pluto is a web browser based tool for writing Julia code. I think you could write Julia in Notepad, but there are more tools to help you in Pluto. For Image editing. You can use Paint or Adobe Photoshop to edit images. And for some Photo editing programs you can even make custom buttons/commands that will combine different and link different tools together. But you can also use different computer languages (including Julia) to edit images. An advantage to using computer code to edit photos compared to a using a graphical interface is repetition. Say you want to lower the contrast on 1,000 photos, or put a watermark on a bunch of photos. Instead of clicking the same buttons over and over again you can just automate it. By using computer code you can also make awesome mosaics, make a chart of the averages colors for every frame in a movie, measure all the craters on the moon, or even make video games. You can also use machine learning to identify your pictures, or at least know which photos have cats in them. For me, learning about Computer Programming has been about learning a way of thinking (much like learning about strange places Pi shows up, or odd things about Primes). People code in all kind of languages for the same problem. You can often solve the same problems with Python or C or Julia. Similarly you can use Python, C, or Julia to solve many different kinds of problems. Maybe after this video series you didn't like Juila, or Pluto, or Image manipulation. But you can try Python, or Jupiter Notebooks, or try and find really big primes. Or stick with these tools. But hopefully these skills will transfer in surprising ways. I mean, what was the point of learning how to do book reports on George Washington? But, those writing skills now allow us to write youtube comments. Similarly, these Julia videos may help us learn skills we could then use to make Twitter Bots to interact with RUclips Math Celebrities. Where is the money in doing these skills? Phone Apps, Self driving cars, amazon warehouse robots, medicine development, drones, automated farming, etc
Res Skyry pluto is like a “doc” file actually called notebook, allowing the user to write text and programming code and also executing it. It is the equivalent of jupyter in python language. I think the first step is to find out about basics of programming and after you can go through this course more easily.
Res Skyry Image processing is used in industry to extract data from image like say identifying written text from image or identifying object from image. Facial recognition also requires knowledge of image processing.
Just a mnemonic why first "down", and then "right": It is based on the matrix indexing which are basic elements of (L)inear algebra. So whenever you want to index something, you draw an 'L'. :-) By the way, it is first height, then width for the same reason -- first you draw the height of an 'L', and then its width.
Cool stuff: * A webcam in Pluto notebook!? Very elegant. * Binding widgets to variables (somewhat like Streamlit)? Awesome. * Grant? Much wow. Meh stuff: * why oh why did Julia have to use the "begin" and "end" boilerplate code? Like really it's impossible to infer that info otherwise? Python is crying right now.
it's better than singnificant whitespace like python does but yeah I would personally prefer the old curly brackets from C/Java/JS... for delimiting blocks of code.
Finding out that I (potentially at least ;-) share a name with Grant's corgi makes me obscurely happy 🐶👍 Of course, chances are it's just a ridiculously cute dog he's found somewhere, but it's the thought that counts ❣
It‘s Alan Edelman’s dog, Philip! Alan’s one of the professors for the course. He sent me a postcard last year with a picture of Philip on it when my class with him ended 😭
Mathematica is sexy too in a different way since it is kind of unique, but Julia is much more widely applicable and much better for general programming, or for more numerics-oriented programming. Mathematica is still the king of computer algebra for now though.
@@BosonCollider definitely. Mathematica tries to do everything, but I’d never use it for serious numerical computing. On the other hand, since I have access to Mathematica, I would never use a Julia solution (or likely, whatever interface to SAGE exists) to do computer algebra.
cool stuff i have taken computer science as my major for my undergraduate degree this will be my first year at college . i don't know a thing about programming, still very easy to understand.
convolve and blur2 not defined in notebook for lesson 1.1 of Spring 2021 Computational Thinking . Would be nice if environment was compatible with demo. Its important that environments for beginners are error-free. Their problem-solving experience in the environment is limited. Could find no reference to convolve when searching `julia convolve()` or similar. I am assuming the video is re-used from another context (2020) that had blur*() and convolve()
Grant Sanderson did explain and apologise in the video, that he was using some unshared functions., though it would have been better to make a little library and attach it to the video so the plebs can follow-along.
14:18 I think the decimate function argument 10 means _preserve_ every 10th element, not decimate every 10th element. That's why, decimate(new_phil, 10) returned a larger image than decimate(new_phil, 2).
@@Daniel-cz9gt So, it's apparently a custom made function, as mentioned in lecture 2 around 0:40: function decimate(arr, ratio=5) return arr[1:ratio:end, 1:ratio:end] end So, indeed it preserves, not decimates, every ratio-th element.
Hi, Thanks for the wonderful course. I use Julia 1.0.5. The blur and decimate is not working. Could you please help me to figure out the problem. Thanks:)
So dot in Julia is basically `map` (or operator from Haskell). I wonder if it is generic - can you easily implement something like Functor instance of any container here?
@@Daniel-cz9gt Yes. Grant explicitly defined the function and didn't show it in the video. You have to explicitly define the function. He mentioned this in the next video.
If you decimate then you will be left with 90% (axiomatically). Maybe fractionate or sample? Does anyone have a better more acurate and understandable term or expression?
10:03 The simplest, most powerful image processing software around. It's got everything built in. Except for red. If you want the color red you have to create that yourself. ;)
UndefVarError: decimate not defined. convolve also not defined. Not in Images. Hard to follow along when you're using functions that are not in Images. Where in hell are they from?
Think of it in terms of nested looping over an image (I'm using pseudo-code because I've never used Julia before) for i in height for j in width do-something(some-image[i, j]) the counter for the inner loop will increase before the one for the outer loop or to put it in another way, you will iterate over the image row by row, like you would read a line of text line by line, which makes it more intuitive (at least to me) if it were the other way around you would have to switch the indexes, e.g. some-image[j, i] instead of [i, j], which would seem weird to me (but I guess one would get used to that given time)
I think it's just a Pachira aquatica. Have one of those, looks exactly like it. And cannabis would be more recognizable by an edge detection algorithm :p
Whoever from the Julia team thought of bringing Grant for this is a genius
Grant? Julia? Pluto? Image Processing? How much better can one video get!
I hope Brady makes a guest appearance later on in the course! And Parker does a video about how people solved his Channel 2 Puzzles with Julia.
Um I may seem really ignorant here, but what's this all bout lol. Like I usually follow everything grant does, but here I'm a bit lost. You seem to be familiar with the Julia Language and Pluto (whatever that is), and "image processing", can you please give me a lil background on whats the, like, industrial application/purpose of this tool/skill/process? [ also i have no programming experience, and this doesn't seem like the right place to ask this question but welp :D ]
@@resskyry1364
You can use many different languages for Computer Programming. Python, C, Ruby, Javascript, and Julia. To write computer code you can use different tools. You can run some code actually just in your command line, or you can even write it in notepad.
Much like how Microsoft Word offers more tools then Notepad, different IDEs offer more tools for specifically writing code. I am new to Julia, but it sounds like Pluto is kind of like Google Docs for writing Julia. I think Pluto is a web browser based tool for writing Julia code. I think you could write Julia in Notepad, but there are more tools to help you in Pluto.
For Image editing. You can use Paint or Adobe Photoshop to edit images. And for some Photo editing programs you can even make custom buttons/commands that will combine different and link different tools together. But you can also use different computer languages (including Julia) to edit images.
An advantage to using computer code to edit photos compared to a using a graphical interface is repetition. Say you want to lower the contrast on 1,000 photos, or put a watermark on a bunch of photos. Instead of clicking the same buttons over and over again you can just automate it. By using computer code you can also make awesome mosaics, make a chart of the averages colors for every frame in a movie, measure all the craters on the moon, or even make video games. You can also use machine learning to identify your pictures, or at least know which photos have cats in them.
For me, learning about Computer Programming has been about learning a way of thinking (much like learning about strange places Pi shows up, or odd things about Primes).
People code in all kind of languages for the same problem. You can often solve the same problems with Python or C or Julia. Similarly you can use Python, C, or Julia to solve many different kinds of problems. Maybe after this video series you didn't like Juila, or Pluto, or Image manipulation. But you can try Python, or Jupiter Notebooks, or try and find really big primes. Or stick with these tools. But hopefully these skills will transfer in surprising ways. I mean, what was the point of learning how to do book reports on George Washington? But, those writing skills now allow us to write youtube comments. Similarly, these Julia videos may help us learn skills we could then use to make Twitter Bots to interact with RUclips Math Celebrities.
Where is the money in doing these skills? Phone Apps, Self driving cars, amazon warehouse robots, medicine development, drones, automated farming, etc
Res Skyry pluto is like a “doc” file actually called notebook, allowing the user to write text and programming code and also executing it. It is the equivalent of jupyter in python language. I think the first step is to find out about basics of programming and after you can go through this course more easily.
Res Skyry Image processing is used in industry to extract data from image like say identifying written text from image or identifying object from image. Facial recognition also requires knowledge of image processing.
Grant Sanderson and Julia? Am I dreaming? Is this real?
He just added a pro to 2020
This is a great resource! Julia is a great language and it needs courses like this to become more widespread
Wow, familiar voice. Didn't know Grant was a Julia coder too :)
He is now!!
Yeah, I was trying to figure out why I know this voice, and then it hit me.
Grant and Julia in one video? 2020 isn't so bad after all
Exactly. Most ambitious crossover ever.
Mass switch to Julia after Grant's endorsement today.
Hello to former R users 🙋♂️
3blue1brown + Julia + Pluto? All my bromances in one video
I'd only vaguely considered looking into Julia, but now that this resource is here AND with Grant, there's no question
Its great to see the creator of 3Blue1Brown so invested into the Julia language. Julia is truly a big step in the right direction
I was doing well with R and Python but now I'll start Julia as Grant is teaching it
me too
Is the one speaking the one from 3blue1brown?
Yes, he is the one from 3Blue1Brown.
Wow, what a wonderful presentation, showing the elegance and power of Julia all in 20 minutes. Thank you so much Grant.
Very excited about this course! Just what I wanted! 😍😍
I hardly comment anything, anywhere but this, is just great :D Thank you!
I, for one, am happy to welcome our new 1-indexing overlords!
Just a mnemonic why first "down", and then "right": It is based on the matrix indexing which are basic elements of (L)inear algebra. So whenever you want to index something, you draw an 'L'. :-) By the way, it is first height, then width for the same reason -- first you draw the height of an 'L', and then its width.
That's how I remember it too!
that is a great tip, thank you
3Blue1Brown AND Philip?!?!! Greatest video of all time
It's really amazing to see Grant here!
Julia and 3b1b, is this paradise?
My dream is to see the whole of Julia explained by Grant, like this awesome video🎉
I love staring at Phil the whole time hahaha. Corgi's are life.
Cool stuff:
* A webcam in Pluto notebook!? Very elegant.
* Binding widgets to variables (somewhat like Streamlit)? Awesome.
* Grant? Much wow.
Meh stuff:
* why oh why did Julia have to use the "begin" and "end" boilerplate code? Like really it's impossible to infer that info otherwise? Python is crying right now.
it's better than singnificant whitespace like python does but yeah I would personally prefer the old curly brackets from C/Java/JS... for delimiting blocks of code.
I was really shocked by hearing Grant's voice here. I would have never imagined it.
He just don't seem like a crufty old university perfesser 😜
Finding out that I (potentially at least ;-) share a name with Grant's corgi makes me obscurely happy 🐶👍
Of course, chances are it's just a ridiculously cute dog he's found somewhere, but it's the thought that counts ❣
It's Alan Edelman's corgi, I believe…
It‘s Alan Edelman’s dog, Philip! Alan’s one of the professors for the course. He sent me a postcard last year with a picture of Philip on it when my class with him ended 😭
Thank you both, that does not make me any less happy 👍
WOW! I love Julia!
Some of the functions like convolve and blur() are not defined in Julia.
I guess u need to use the Using Images library
sheesh. this looks so sexy compared to mathematica. especially the bind part
IKR! It's also a fast general purpose language so you can do way more stuff with it without resorting to ugly hacks.
Mathematica is sexy too in a different way since it is kind of unique, but Julia is much more widely applicable and much better for general programming, or for more numerics-oriented programming. Mathematica is still the king of computer algebra for now though.
@@BosonCollider definitely. Mathematica tries to do everything, but I’d never use it for serious numerical computing. On the other hand, since I have access to Mathematica, I would never use a Julia solution (or likely, whatever interface to SAGE exists) to do computer algebra.
I think I can listen to any topic he speaks, I don't mind listening for hours and hours of him taking sky is blue
cool stuff
i have taken computer science as my major for my undergraduate degree this will be my first year at college .
i don't know a thing about programming, still very easy to understand.
Anyone know how to use convolve() and blur()?
"oh wow, this guy looks strangely similar to the one from 3B1B, surely this can't be the same person"
Then I continued listening...
decimate function in not working for me. Can you please help?
You guys should show seam carving on images .. it’s a great way to show the power of image processing
convolve and blur2 not defined in notebook for lesson 1.1 of Spring 2021 Computational Thinking . Would be nice if environment was compatible with demo. Its important that environments for beginners are error-free. Their problem-solving experience in the environment is limited.
Could find no reference to convolve when searching `julia convolve()` or similar.
I am assuming the video is re-used from another context (2020) that had blur*() and convolve()
That made the whole thing suck for me. I like to have Pluto open and follow along.
Grant Sanderson did explain and apologise in the video, that he was using some unshared functions., though it would have been better to make a little library and attach it to the video so the plebs can follow-along.
I have tried this notebook and it can't find the "decimate" or "convolve" functions. I think there must be an ```import``` I must have missed.
Is this a crossover episode?
14:18 I think the decimate function argument 10 means _preserve_ every 10th element, not decimate every 10th element. That's why, decimate(new_phil, 10) returned a larger image than decimate(new_phil, 2).
Hi, do you know what module/package has the decimate function?
@@Daniel-cz9gt Sorry, I don't know... I just asked it on Discord. Here's the link (go to the pluto-helpdesk channel): discord.gg/zqFj67
@@Daniel-cz9gt So, it's apparently a custom made function, as mentioned in lecture 2 around 0:40:
function decimate(arr, ratio=5)
return arr[1:ratio:end, 1:ratio:end]
end
So, indeed it preserves, not decimates, every ratio-th element.
@@enisten Thank you for your reply! I thought it must be from Images library but couldn't find anything about it upon Googling. Cheers :)
Hi,
Thanks for the wonderful course. I use Julia 1.0.5. The blur and decimate is not working. Could you please help me to figure out the problem.
Thanks:)
did it ever got resolved?
@@exequielnuno5965 no
question: tried out the camera_input binding, got error saying `camera_input` not defined... so how can I embed a webcam
same
what module are blur and convolve located in?
So dot in Julia is basically `map` (or operator from Haskell). I wonder if it is generic - can you easily implement something like Functor instance of any container here?
Haven't played with it but check this out: twitter.com/fjsosah/status/1288519968255102976 The definition of a Category is very similar to Haskell's
Julia steals some of its notation from Matlab.
WHAT! JULIA, IMAGE PROCESSING, AND GRANT ALL TOGETHER???
Thought it was Conan O’ Brien at first glance and I’m still not over the confusion
Oh my God this guy is going for a new era of 3b1b😍😍😍
where do I know this voice from
3blue1brown
For those of you who want to first set up Julia and Pluto to follow along: ruclips.net/video/OOjKEgbt8AI/видео.html
What IDE is Grant using? Love the notebook/cell environment
Pluto Notebook
What is it, a crossover episode?
waiting for more... :)
Should I learn Julia or Rust for machine/deep learning?
AFAIK Rust is for low level programming, system programming and web programming.
At 12:30 what does the ".r" do in "color.r" ?
color is an rgb object, I think, so color.r extracts the value of red from color
Oh.. got it. Thanks!
That `decimate` function returning an UnDefVar error even after importing Images. I'm using Julia 1.5.1 on windows 10
I'm having the same problem. Working on Homework 1.
Did you solve it?
@@Daniel-cz9gt Yes. Grant explicitly defined the function and didn't show it in the video. You have to explicitly define the function. He mentioned this in the next video.
@@sbhhdp Oh, thanks. I thought it was some package missing.
@@sbhhdp Can you paste it here?
Love computer vision, inverse of rendering which I also love haha
In job interviews, not the serious parts but for chit-chat purposes, I often refer to CV as 3D rendering done in reverse. Not really true, of course.
Grant got to teach Julia at MIT. Guy you need to relax I can only allocate so much jealousy before I run out of JAM
If you decimate then you will be left with 90% (axiomatically).
Maybe fractionate or sample?
Does anyone have a better more acurate and understandable term or expression?
OMG, that's so awesome
Great video
13:39 The „fi“ in „field“ is ligatured and looks just wrong
is this the 3Blue1Brown guy?
how to get the camera capture working?
10:03 The simplest, most powerful image processing software around. It's got everything built in. Except for red. If you want the color red you have to create that yourself. ;)
are all these features present in julia? or some are from pluto.
typeof(philip) should be “pupper” :)
lol
Blur doesn't work. Is it a user defined function ?
UndefVarError: blur not defined
Perfect, just what I wanted now 😃🤗
UndefVarError: decimate not defined. convolve also not defined. Not in Images. Hard to follow along when you're using functions that are not in Images. Where in hell are they from?
Did you find the functions or package?
Does taking this course from MIT cost money?
Was that a dark reference ??
Wonderful!
still not happy that height is the first index on the size, though... seems counterintuitiv
Think of it in terms of nested looping over an image
(I'm using pseudo-code because I've never used Julia before)
for i in height
for j in width
do-something(some-image[i, j])
the counter for the inner loop will increase before the one for the outer loop
or to put it in another way, you will iterate over the image row by row, like you would read a line of text line by line, which makes it more intuitive (at least to me)
if it were the other way around you would have to switch the indexes, e.g.
some-image[j, i]
instead of [i, j], which would seem weird to me (but I guess one would get used to that given time)
I know lol I can never keep the order straight
Hey do you know more channels like #3blue1brown
Column-major vs row-major layouts
This guy is cool he should make his own youtube channel
hahaha, funny :)
My Math Guru, he's God
I think Julia is the next big deal
Nice 👍
Is that a marijuana plant in the background, in the last few frames? Good to see ;)
I think it's just a Pachira aquatica. Have one of those, looks exactly like it. And cannabis would be more recognizable by an edge detection algorithm :p
♥️♥️♥️🔥🔥🔥
omg, Grant is magnificent as usual. But julia suck imo, aside from syntax that is horrible, can anybody explain to me why image is not a matrix? damn
This looks like a nice language, but I'm gonna have to give it a pass for indexing from 1.
That's its best feature 😃
@@cybervigilante Haha, good one!