Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

maximum pixel intensity of image

Asked by Lalit Patil on 2 Oct 2012

My current project is based on CCD and LASER. i want to calculate maximum intensity of laser strip on ccd.. so please give me a code to find maximum intensity pixel and location of that pixel as row and column..

0 Comments

Lalit Patil

4 Answers

Answer by Image Analyst on 2 Oct 2012
Accepted answer

Try this:

% Generate sample data
imageArray = [ 3 4 5 5 4 4 5 5 3; 5 4 5 5 3 3 3 3 4];
% Find the max value.
maxValue = max(imageArray(:))
% Find all locations where it exists.
[rowsOfMaxes colsOfMaxes] = find(imageArray == maxValue)

That said, this is probably not what you want to do to find the laser spot. You probably want to either do a spatial filter or a threshold, and then binarize and find the centroid of the binary blob. There are some laser tracking programs in the File Exchange: http://www.mathworks.com/matlabcentral/fileexchange/32492-laser-dot-isolation, http://www.mathworks.com/matlabcentral/fileexchange/33666-simple-particle-filter-demo, http://www.mathworks.com/matlabcentral/fileexchange/17960-particle-filter-color-tracker, http://www.mathworks.com/matlabcentral/fileexchange/31463-simple-demo-program-for-color-based-tracking, etc. etc.

0 Comments

Image Analyst
Answer by Matt J on 2 Oct 2012
[maxval,idx]=max(image(:));
[row,col]=ind2sub(size(image), idx);

0 Comments

Matt J
Answer by Lalit Patil on 2 Oct 2012

This gives one irritating figure and gives only value of one pixel... The response of this code is same for all figures.. ... and in my image there is more than one pixel that contains same maximum intensity... So, please give modification or anothe code...

0 Comments

Lalit Patil
Answer by Lalit Patil on 3 Oct 2012

Thank you Image Analyst... This thing works me... Now I want to generate Image array from image in terms of row and column as you have shown.. I tried imread but it gives M*N*3 array... and i require only M*N array.. So please give code or suggestion..

2 Comments

Lalit Patil on 3 Oct 2012

Ok... Thank you image analyst... It has been solved... I = imread('Image'); i = I(:,:,3);

Image Analyst on 3 Oct 2012

Yes, taking the blue channel will give you the best contrast for a red laser. Of course that doesn't solve the location (centroid) problem.

Lalit Patil

Contact us