This looked like a fun and accessible tutorial on the topic of image processing that might be especially appealing to Python fans.
Image processing is the process of manipulating or performing operations on images to achieve a certain effect (making an image grayscale, for example), or of getting some information out of an image with a computer (like counting the number of circles in it).
Image processing is also very closely related to computer vision, and we do blur the line between them a lot. Don't worry too much about that – you just need to remember that we are going to learn about methods of manipulating images, and how we can use those methods to collect information about them.
In this article, I will go through some basic building blocks of image processing, and share some code and approaches to basic how-tos. All code written is in Python and uses OpenCV, a powerful image processing and computer vision library.
(Score: 3, Interesting) by Justin Case on Saturday March 12 2016, @05:10PM
I've dabbled in image processing with limited success, and this article looks like it will give me a big boost.
Also, Python is an ideal language for image processing because of its ability to gulp an entire array in one line of code. You can spend a lot more effort tinkering with your algorithm and a lot less effort writing per-pixel and per-color loops.
(Score: 3, Insightful) by maxwell demon on Saturday March 12 2016, @05:37PM
This is a tutorial on how to use a specific image processing library. It is not a tutorial on image processing itself. It just tells you what the library provides, and how to call those routines. That's great if you want to know how to use the image processing library, but does not teach you anything about image processing that you couldn't learn by simply looking at the menu of your favourite image manipulation program.
There are two possibilities of what you might want to learn about image processing itself:
The Tao of math: The numbers you can count are not the real numbers.
(Score: 5, Interesting) by physicsmajor on Saturday March 12 2016, @06:01PM
All 100% true. This is basically an ad for OpenCV, along with a rather poor road map.
Admitting right up front: I'm biased in that I contribute to scikit-image, another Python image processing library. However, while I respect OpenCV, I don't think OpenCV is an appropriate place to start newcomers. It's a massive library with a gigantic, cluttered main namespace under cv2 making it hard to find what you need efficiently. It's also almost entirely C under the hood, so while you technically are working with Python you have very little ability to modify or tweak these tools to your needs. From a stylistic standpoint, it flaunts PEP8 to an embarrassing degree which can create very bad habits. OpenCV is a computer vision library, first and foremost, so speed is paramount - their calculations need to be doable in well under 1/60 of a second to be usable on video in real time. There's a place for this! Just realize general purpose image processing it isn't.
For my students and colleagues, I always start them with scikit-image which is overwhelmingly Python with Cython sprinkled in. It has a subpackage model with the algorithms grouped in second levels around a common purpose like "skimage.segmentation", "skimage.color", etc., which makes it easier for new users to navigate. The documentation is made to be user friendly, it holds to PEP8, and it promotes usability and maintainability. Finally, it's a general purpose image processing library rather than a computer vision library.
Use what you will.
(Score: 0) by Anonymous Coward on Saturday March 12 2016, @07:46PM
it flaunts PEP8 to an embarrassing degree which can create very bad habits
Wasn't sure what that was, so I read it. It's the style guide, and among other things is
states a preference for spaces over tabs. How this came to be is beyond me. Why do people
want to torture themselves with tap-tap-tap-tap on the space bar to get the proper indent,
when tab is all you need?
(Score: 2) by maxwell demon on Saturday March 12 2016, @08:26PM
It's about the file encoding. When you have a proper editor, you can set it so that it automatically converts between spaces and tab characters for you, in whatever style you prefer. So if you have to type "tap-tap-tap" for indenting with multiple space characters, you might want to look into a better editor (or possibly just read your editor's documentation).
Space indenting has the advantage that it is stable under additional indenting (like quoting in emails).
The Tao of math: The numbers you can count are not the real numbers.
(Score: 2) by Justin Case on Saturday March 12 2016, @11:16PM
And tabs are directly from Satan. Just in case you hadn't already learned that.
(Score: 2, Interesting) by anubi on Sunday March 13 2016, @05:33AM
It looks to me that in a given video stream, one has access to past datas from previous perspectives, present data, and future datas simultaneously.. which looks like an opportunity to integrate noise out and sharpen the present image. Do this for all frames in a video stream. It looks to me like its feasible to re-create a high quality image stream from a low quality one, with quality dropping out on dramatic scene changes.
There has gotta be software out already that does this. Like taking old VCR tapes and making blu-ray quality images. Or re-creating decent video from old surveillance cameras.
"Prove all things; hold fast that which is good." [KJV: I Thessalonians 5:21]