Digital Images - Computerphile

preview_player
Показать описание
How are images represented in a computer? Image analyst & Research Fellow Mike Pound gives us a snapshot. (First in a series on computer vision)

Digital Image Capture: COMING SOON

This video was filmed and edited by Sean Riley.

Рекомендации по теме
Комментарии
Автор

I like that guy. He manages to keep my attention but also go beyond the most basic explanation

teekanne
Автор

I just want to say this guy explains everything extreamly well and clear, really good!

jackninja
Автор

If it's not already planned, you should do a video on the jpeg compression. I learned that in design school and I think it would interest a lot of computerphile/numberphile viewers.

KubrickFR
Автор

I like to watch all your videos. One suggestion; if the show is a conversation between the camera man and the host. Please give the cameraman his own microphone. Then all of us can understand what the cameraman is saying. OK. For me all I can do is guess.

abpccpba
Автор

Ah, the pseudo-2D-array index formula. I figured out how to generalise it to higher dimensions when I was at uni.

For 3D it's: i = width*height*z + width*y + x

For 4D it's: i = width*height*depth*w + width*height*z + width*y + x

In general, each coordinate is multiplied by the product of all the lower-dimensional sizes and the results are added. The only time the highest-dimensional size gets used is in your boundary check code to make sure you're not asking for a location outside the array.

Pseudo-n-dimensional arrays are a handy way of circumventing programming language limitations on passing arrays to functions. When faced with a language requiring fixed sizes for all dimensions after the first (I recall C being such a case), you can instead pass a linear array (technically a pointer to one) and a few size integers and use some simple maths in the function body to work with arbitrary sizes of multi-dimensional arrays.

Roxor
Автор

Can you please make a video or a series of videos about file formats, more about how files are stored, and how the bytes of each file are laid out in memory? Kind of like this lecture, but also for different file formats, such as images, videos, audios, pdfs, zip, tar, etc. Some possible topics to discuss would be different file headers and metadata of each file format, and the lay out of data in the actual file. That would be very interesting and informative. What makes a file a file?

konstantinrebrov
Автор

The brighter than full scale colors are probably used when editing these videos in so called "video levels" range which has a small headroom to contain overbright values, and impossible colors like 'saturated white', where details can be recovered from with contrast/curves if needed.

jndominica
Автор

I would love to see a follow up of this video, maybe explain a bit more about the most popular formats

chanklor
Автор

would love a video about different image compressions, and what their basic ideas are, also how some audio codecs work in principles would be cool

rangedfighter
Автор

These are raster images there are also vector images witch work pretty much how you would construct a shape on a graph in maths. Though I'm not sure on the details of how these are stored on a computer. Vector images are very useful for something you might want to have resized often as they don't lose quality as you make them bigger.

TheAkashicTraveller
Автор

This video is quite applicable to what I'm learning now, I found it very interesting! Thank you!

CtrlShiftGo
Автор

So how do you access the red color exactly?! Or blue?

glavgad
Автор

There's an error in the very last bit. In order for it to be correct you needed to start with 0 and not with 1. So the correct formula for starting with 1 would be (y-1)*stride+(x-1) +1

volodyanarchist
Автор

What would you want padding for? Not criticising or anything, just curious.

ManWithBeard
Автор

Sorry Linus, you've been out done...

harleycurnow
Автор

4:34, someone in the background breaking a plate? :P

skewie
Автор

how about Vector images? How do they work?

dave
Автор

Technically, alpha is alpha :) It has no intrinsic meaning, but can be (and usually is) used for blending, so people assume it's for transparency. You often get an alpha channel whether you want it or not for optimal memory alignment.

MrGencyExit
Автор

SO close to understanding what stride is. If I have a 12-bit (i.e. 16 bpp (bits per pixel)) monochrome 1280 x 800 image sensor and need to convert that to an 8-bit monochrome image, what is the stride? Is it simply the width? Width * bpp (i.e 20, 480)? Width * Bytes per pixel (i.e. 2, 560)? Or something else?

I can't get my output images to look right. They are indeed 8-bit monochrome, but there are artifacts. Upon close inspection, it seems there are 1 pixel wide vertical bands of 0-value in my image, and indeed when inspecting the buffer in memory whilst debugging, every other byte is 0x00. It seems the LSBs are getting truncated by the imager or something, but still ending up in memory. How do I address this? This actually seems like it may not be a stride issue. I'm working with a C#.NET app.

Chiramisudo
Автор

Why index an image as a 1d array? Why not a 2d matrix where perhaps the x, y point in the matrix corresponds to the cartesian location of the pixel in the image? Or perhaps keep the location as a 1d array, and use the second to index the channels? Is this not as efficient?

evilemperorcake