Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

Image Processsing with a microcontroller

Status
Not open for further replies.

RoboWanabe

Member
Hiya i could realy used some help on something.

Im trying to create a system which will use a camera and take an image and process it and then perform some kind of action. for e.g. i will tell it to find the red ball or green bowl etc. ive done some reading and i have heard of using matlab with a webcam. but my problem is i dnt want to lug a computer around with me i want to be able to work on a robot.

Basikly how can i process an image like on matlab but just with a microcontroller? i have heard of Matlab c files but how does this work and what micro is compatible? is it possible to right the code on matlab to process the image and put it in a micro to use by its self on with a pc?

I hope you understand lol
 
I think you're going to have to research many topics before you can start on this, including :- image file formats, interfacing memory cards and micros, correlation, convolution, Fourier analysis, programming in the C language ........
 
okay thank you. im pretty good with c language and i am quite skilled with a micro. am studying correlation and convolution at the minute and do not have a clue about fourier analysis but cnt see why i would need it?

So this is my understanding so far: A camera will be interfaced with my micro the output of the camera is going to be in some kind of format(or does the micro create the format) is the correlation and convolution just for delaying images samples to be stored so i can process? and will processing the image in c language for the microcontroller be anything like image processing in matlab?

Thank you for you help and any tips would be appreciated :)
 
I suggest you try doing it on the PC first - write programs on there for doing it from scratch in C - then see what resources you need, and pick a controller accordingly. I suggest you will be VERY surprised about the power and memory required to do what you want.
 
yea ive been looking lol if the camera is 356x292 pixel and its 8 bit does that mean its 832.616kb per frame. this is a c3088 camera. and it dosent mention frames per second so how do i work out what memory i need and which type for the pick for e.g. rom, eprom, flash or am i looking for eeprom data memory lol what does that even mean (EEPROM) lol

Thank you for your help guys.
 
I think this is really good advice:
I suggest you try doing it on the PC first - write programs on there for doing it from scratch in C - then see what resources you need, and pick a controller accordingly. I suggest you will be VERY surprised about the power and memory required to do what you want.

and I think Nigel is correct to upper case VARY. :D

I looked up the data sheet for the cam (nice, BTW) and found it to be spartan, not EFL, it did get me looking. While I understand the analog out, and what that requires to just display the image, I'm not intimate with the digital out so I started looking into it. I'm reading this data sheet:
https://www.electro-tech-online.com/custompdfs/2011/11/OV7620.pdf
which is for a different camera, but has a LOT more information. :D

Speaking of a LOT more information - that is what this camera has and you will have to deal with :D I've seen PIC18's deal with titling. routing signals, etc and in the products I'm thinking of, there are a lot of support chips.

Wanting to get into similar things to what you are doing, I got the same video chip, and a small color TFT as on the board I'm going to link to, but I cheeped out, and now I wish I had dropped the two fifty can. for this:
**broken link removed**

The camera you have is controlled by I2C so you will be able to easily control it, but you are going to need a lot of memory - it looks like 16 bits parallel data - to do anything with the images. If you are thinking real time or close, you will need huge ponies! :eek:

Forget EEPROM way too slow. Flash will do it for memory. I can't speak too much about it yet: I got my board last night, and have just started with it, but here you can take a look at the data sheets etc:
**broken link removed**
There is an SPI Flash memory on the board,
16 Megabit (2Mx8) serial flash memory for additional data storage
but I believe if you want to handle motion it isn't fast enough. There are pads for a parallel RAM. The memory is all for buffering the frames, and even if you are not going to display them, you will need to deal with them.

Hope all my rambling was of some help.:eek:

EDIT: Came across this Arduino thread:
**broken link removed** but he is processing it on a PC.
 
Last edited:
Thanks ive got some good leads now, nice one but its all looking very daugnting lol i just aint got the first clue about images and takeing them from the camera and putting them on the pic. If any one wants to give me a quick lesson ill be much obliged :) act is if im a total retard ( which i am ) and ill eventualy get it haha
 
Thanks ive got some good leads now, nice one but its all looking very daugnting lol i just aint got the first clue about images and takeing them from the camera and putting them on the pic. If any one wants to give me a quick lesson ill be much obliged :) act is if im a total retard ( which i am ) and ill eventualy get it haha

As I said above, forget a PIC for now - do it on the PC first.
 
Thanks ive got some good leads now, nice one but its all looking very daugnting lol i just aint got the first clue about images and takeing them from the camera and putting them on the pic. If any one wants to give me a quick lesson ill be much obliged :) act is if im a total retard ( which i am ) and ill eventualy get it haha

Take a look at the zoneminder source code for PC linux examples of video capture and processing. There is no way even the most basic processing will run on a micro-controller.
https://www.zoneminder.com/
 
A ARM computer is between the PIC and your PC. We are doing some real time video but a ARM is no small project.

I don't know what you are trying to do! I talked with a man who uses a little PIC to watch video. He only looks at 60 bytes at a time. In his case he only needs to see 60 pixels. In some cases too much information is a problem.
 
Status
Not open for further replies.

Latest threads

New Articles From Microcontroller Tips

Back
Top