Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Image Recognition

I'd like to do some work with the nitty-gritties of computer imaging. I'm looking for a way to read single pixels of data, analyze them programatically, and change them. What is the best language to use for this (Python, c++, Java...)? What is the best fileformat?

I don't want any super fancy software/APIs... I'm looking for the bare basics.

like image 979
stalepretzel Avatar asked Sep 27 '08 03:09

stalepretzel


People also ask

What is meant by image recognition?

Image recognition is the process of identifying an object or a feature in an image or video. It is used in many applications like defect detection, medical imaging, and security surveillance.

What is image recognition example?

Image recognition use cases are found in different fields like healthcare, marketing, transportation, and e-commerce. It can be used to identify objects in images to categorize them for future use. For example, it can be used to classify the type of flower that is in the picture or identify an apple from a banana.

How does image recognition really work?

The image recognition algorithms use deep learning datasets to identify patterns in the images. These datasets are composed of hundreds of thousands of labeled images. The algorithm goes through these datasets and learns how an image of a specific object looks like.


2 Answers

If you need speed (you'll probably always want speed with image processing) you definitely have to work with raw pixel data. Java has some real disadvantages as you cannot access memory directly which makes pixel access quite slow compared to accessing the memory directly. C++ is definitely the language of choice for production use image processing. But you can, for example, also use C# as it allows for unsafe code in specific areas. (Take a look at the scan0 pointer property of the bitmapdata class.) I've used C# successfully for image processing applications and they are definitely much faster than their java counterparts. I would not use any scripting language or java for such a purpose.

like image 117
Joachim Kerschbaumer Avatar answered Nov 15 '22 10:11

Joachim Kerschbaumer


It's very east to manipulate the large multi-dimensional or complex arrays of pixel information that are pictures using high-level languages such as Python. There's a library called PIL (the Python Imaging Library) that is quite useful and will let you do general filters and transformations (change the brightness, soften, desaturate, crop, etc) as well as manipulate the raw pixel data.

It is the easiest and simplest image library I've used to date and can be extended to do whatever it is you're interested in (edge detection in very little code, for example).

like image 37
Sean Avatar answered Nov 15 '22 11:11

Sean