Working With Images in Julia | Week 1, lecture 3 | 18.S191 MIT Fall 2020 | Grant Sanderson

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

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

  • @ykr786
    @ykr786 4 года назад +98

    Whoever from the Julia team thought of bringing Grant for this is a genius

  • @subhasish-m
    @subhasish-m 4 года назад +296

    Grant? Julia? Pluto? Image Processing? How much better can one video get!

    • @lolerskates876
      @lolerskates876 4 года назад +5

      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.

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

      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 ]

    • @lolerskates876
      @lolerskates876 4 года назад +11

      @@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

    • @Leozitor
      @Leozitor 4 года назад +3

      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.

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

      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.

  • @HungNguyen-lz5xb
    @HungNguyen-lz5xb 4 года назад +255

    Grant Sanderson and Julia? Am I dreaming? Is this real?

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

      He just added a pro to 2020

  • @niconeuman
    @niconeuman 4 года назад +51

    This is a great resource! Julia is a great language and it needs courses like this to become more widespread

  • @OlliWilkman
    @OlliWilkman 4 года назад +118

    Wow, familiar voice. Didn't know Grant was a Julia coder too :)

    • @inomo
      @inomo 4 года назад +14

      He is now!!

    • @memnarch108
      @memnarch108 4 года назад +4

      Yeah, I was trying to figure out why I know this voice, and then it hit me.

  • @buivietdung1995
    @buivietdung1995 4 года назад +52

    Grant and Julia in one video? 2020 isn't so bad after all

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

      Exactly. Most ambitious crossover ever.

  • @tonyctan
    @tonyctan 4 года назад +28

    Mass switch to Julia after Grant's endorsement today.
    Hello to former R users 🙋‍♂️

  • @PanzerfaustBR
    @PanzerfaustBR 4 года назад +23

    3blue1brown + Julia + Pluto? All my bromances in one video

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

    I'd only vaguely considered looking into Julia, but now that this resource is here AND with Grant, there's no question

  • @MCRuCr
    @MCRuCr 2 года назад +3

    Its great to see the creator of 3Blue1Brown so invested into the Julia language. Julia is truly a big step in the right direction

  • @uttiyamaji1275
    @uttiyamaji1275 4 года назад +19

    I was doing well with R and Python but now I'll start Julia as Grant is teaching it

  • @samm9840
    @samm9840 4 года назад +24

    Is the one speaking the one from 3blue1brown?

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

    Wow, what a wonderful presentation, showing the elegance and power of Julia all in 20 minutes. Thank you so much Grant.

  • @abhishekswain2502
    @abhishekswain2502 4 года назад +14

    Very excited about this course! Just what I wanted! 😍😍

  • @31acsap
    @31acsap 4 года назад +4

    I hardly comment anything, anywhere but this, is just great :D Thank you!

  • @wpw4508
    @wpw4508 4 года назад +4

    I, for one, am happy to welcome our new 1-indexing overlords!

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

    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.

    • @ChiGao-r8w
      @ChiGao-r8w 2 года назад

      That's how I remember it too!

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

      that is a great tip, thank you

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

    3Blue1Brown AND Philip?!?!! Greatest video of all time

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

    It's really amazing to see Grant here!

  • @ebonilha
    @ebonilha 4 года назад +16

    Julia and 3b1b, is this paradise?

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

    My dream is to see the whole of Julia explained by Grant, like this awesome video🎉

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

    I love staring at Phil the whole time hahaha. Corgi's are life.

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

    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.

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

      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.

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

    I was really shocked by hearing Grant's voice here. I would have never imagined it.

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

      He just don't seem like a crufty old university perfesser 😜

  • @PhilBoswell
    @PhilBoswell 4 года назад +3

    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 ❣

    • @steveng.johnson2148
      @steveng.johnson2148 4 года назад +5

      It's Alan Edelman's corgi, I believe…

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

      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 😭

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

      Thank you both, that does not make me any less happy 👍

  • @inomo
    @inomo 4 года назад +9

    WOW! I love Julia!

  • @TechnologySandBOX
    @TechnologySandBOX 4 года назад +3

    Some of the functions like convolve and blur() are not defined in Julia.

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

      I guess u need to use the Using Images library

  • @hhhults
    @hhhults 4 года назад +31

    sheesh. this looks so sexy compared to mathematica. especially the bind part

    • @balen7555
      @balen7555 4 года назад +3

      IKR! It's also a fast general purpose language so you can do way more stuff with it without resorting to ugly hacks.

    • @BosonCollider
      @BosonCollider 4 года назад +3

      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.

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

      @@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.

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

    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

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

    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.

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

    Anyone know how to use convolve() and blur()?

  • @meta_cog
    @meta_cog 4 года назад +4

    "oh wow, this guy looks strangely similar to the one from 3B1B, surely this can't be the same person"
    Then I continued listening...

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

    decimate function in not working for me. Can you please help?

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

    You guys should show seam carving on images .. it’s a great way to show the power of image processing

  • @petergoodall6258
    @petergoodall6258 3 года назад +2

    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()

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

      That made the whole thing suck for me. I like to have Pluto open and follow along.

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

      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.

  • @vapourmile
    @vapourmile 2 дня назад

    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.

  • @marckblueberg8428
    @marckblueberg8428 4 года назад +4

    Is this a crossover episode?

  • @enisten
    @enisten 4 года назад +3

    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
      @Daniel-cz9gt 4 года назад

      Hi, do you know what module/package has the decimate function?

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

      @@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

    • @enisten
      @enisten 4 года назад +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.

    • @paterson.
      @paterson. 2 года назад

      @@enisten Thank you for your reply! I thought it must be from Images library but couldn't find anything about it upon Googling. Cheers :)

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

    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:)

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

    question: tried out the camera_input binding, got error saying `camera_input` not defined... so how can I embed a webcam

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

    what module are blur and convolve located in?

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

    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?

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

      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

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

      Julia steals some of its notation from Matlab.

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

    WHAT! JULIA, IMAGE PROCESSING, AND GRANT ALL TOGETHER???

  • @MaddiHD
    @MaddiHD 4 года назад +5

    Thought it was Conan O’ Brien at first glance and I’m still not over the confusion

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

    Oh my God this guy is going for a new era of 3b1b😍😍😍

  • @MarieAmeliaFreyaAster
    @MarieAmeliaFreyaAster 4 года назад +9

    where do I know this voice from

    • @Koospa
      @Koospa 4 года назад +16

      3blue1brown

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

    For those of you who want to first set up Julia and Pluto to follow along: ruclips.net/video/OOjKEgbt8AI/видео.html

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

    What IDE is Grant using? Love the notebook/cell environment

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

    What is it, a crossover episode?

  • @amruthkanakavel5213
    @amruthkanakavel5213 4 года назад +3

    waiting for more... :)

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

    Should I learn Julia or Rust for machine/deep learning?

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

      AFAIK Rust is for low level programming, system programming and web programming.

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

    At 12:30 what does the ".r" do in "color.r" ?

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

      color is an rgb object, I think, so color.r extracts the value of red from color

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

      Oh.. got it. Thanks!

  • @subhadeepbej3241
    @subhadeepbej3241 4 года назад +4

    That `decimate` function returning an UnDefVar error even after importing Images. I'm using Julia 1.5.1 on windows 10

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

      I'm having the same problem. Working on Homework 1.

    • @Daniel-cz9gt
      @Daniel-cz9gt 4 года назад

      Did you solve it?

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

      @@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.

    • @Daniel-cz9gt
      @Daniel-cz9gt 4 года назад

      @@sbhhdp Oh, thanks. I thought it was some package missing.

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

      @@sbhhdp Can you paste it here?

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

    Love computer vision, inverse of rendering which I also love haha

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

      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.

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

    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

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

    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?

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

    OMG, that's so awesome

  • @dmitrymedvedd
    @dmitrymedvedd 2 года назад +1

    Great video

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

    13:39 The „fi“ in „field“ is ligatured and looks just wrong

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

    is this the 3Blue1Brown guy?

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

    how to get the camera capture working?

  • @PhilipSmolen
    @PhilipSmolen 4 года назад +3

    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. ;)

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

    are all these features present in julia? or some are from pluto.

  • @conscarcdr
    @conscarcdr 4 года назад +4

    typeof(philip) should be “pupper” :)

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

    Blur doesn't work. Is it a user defined function ?

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

    UndefVarError: blur not defined

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

    Perfect, just what I wanted now 😃🤗

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

    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?

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

    Does taking this course from MIT cost money?

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

    Was that a dark reference ??

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

    Wonderful!

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

    still not happy that height is the first index on the size, though... seems counterintuitiv

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

      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)

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

      I know lol I can never keep the order straight

    • @Aman-br1ph
      @Aman-br1ph 4 года назад

      Hey do you know more channels like #3blue1brown

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

      Column-major vs row-major layouts

  • @BrianCarloRivera
    @BrianCarloRivera 4 года назад +3

    This guy is cool he should make his own youtube channel

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

    My Math Guru, he's God

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

    I think Julia is the next big deal

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

    Nice 👍

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

    Is that a marijuana plant in the background, in the last few frames? Good to see ;)

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

      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

  • @MrKhan-ci3uy
    @MrKhan-ci3uy 4 года назад

    ♥️♥️♥️🔥🔥🔥

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

    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

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

    This looks like a nice language, but I'm gonna have to give it a pass for indexing from 1.

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

      That's its best feature 😃

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

      @@cybervigilante Haha, good one!