Scan through an image to detect the mid points of 2 grey regions
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Sean
el 19 de Mzo. de 2015
Comentada: Sean
el 19 de Mzo. de 2015
Hi above is an image that Im trying to process. Im looking to automatically plot 2 lines through the middle of the 2 grey regions, i.e. scan up through the rows of the image and detect the end of the darker region then plot the midpoint, scan up through the image again and detect the lighter grey region and then plot the midpoint in that region. The reason Im looking to do this is that the beginning and end of these grey regions vary over images, with an automatic solution to plotting the middle row or midpoint of these segments will allow me to calculate further statistical analysis on the specified rows to give all the pixels in the image the same overall or average value.
0 comentarios
Respuesta aceptada
Ashish Uthama
el 19 de Mzo. de 2015
Editada: Ashish Uthama
el 19 de Mzo. de 2015
See if this gives you any ideas:
im = imread('/tmp/t.png');
imtool(im);
% RGB? gray scale
im = rgb2gray(im);
figure;
plot(im);
%%150 looks like a good threshold
imt = im>150;
imshow(imt,[]);
%%Clean it up (remove single pixel white or dark spots)
imtc = bwmorph(imt, 'clean');
imtc = ~bwmorph(~imtc,'clean');
imshowpair(imt, imtc)
%%Image looks fairly horizontal, process one vertical scan line at a time
lineImg = false(size(imtc));
for c = 1:size(imtc,2)
col = imtc(:,c);
transitions = diff(col);
transitionPoints = find(transitions);
if(numel(transitionPoints)~=2)
disp(['Skipping col ' num2str(c) '. Found multiple transitions']);
continue;
end
midpoint1 = round(mean(transitionPoints));
midpoint2 = round(mean([transitionPoints(2) numel(col)]));
lineImg(midpoint1, c) = true;
lineImg(midpoint2, c) = true;
end
imshowpair(im, lineImg);
Más respuestas (0)
Ver también
Categorías
Más información sobre Image Filtering and Enhancement en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!