How to change level

1 次查看(过去 30 天)
Gytis Raudonius
Gytis Raudonius 2015-10-17
Hi, everyone have prolem on [rogramin, so i working on ANPR and my problem is when i binary image removing object i get dark screen so i think i need change treshold level but i dont now how, so maybe sameone can help me thanx. Code add below.
..........................................
warning off
img = imread('5.jpg');
img = rgb2gray(img);
imshow(img);
level = 0.55;
BW = im2bw(img,level);
imshow(BW);
BW1 = imclearborder(BW);
imshow(BW1);
CC = bwconncomp(BW1, 8);
S = regionprops(CC, 'Area');
L = labelmatrix(CC);
BW2 = ismember(L, find([S.Area] >= 1500));
imshow(BW2);

回答(2 个)

Walter Roberson
Walter Roberson 2015-10-18
When you remove objects that have positive values, then because you replace them with 0, the average brightness over the whole image reduces. The only way to avoid that would be to not remove any objects.
If you are removing more areas than you wish to have removed, then reduce the 1500 to some other value.

Gytis Raudonius
Gytis Raudonius 2015-10-18
编辑:Walter Roberson 2015-10-19
I little change code:
CC = bwconncomp(BW1, 8);
S = regionprops(CC, 'Area');
L = labelmatrix(CC);
P = 1500;
BW2 = ismember(L, find([S.Area] >= P));
imshow(BW2);
But, i dont have ideas how i can change P value. Sometimes need that P lower than 1500, sometimes great. I try to do with if - function, but i got errors.
  3 个评论
Gytis Raudonius
Gytis Raudonius 2015-10-19
Yes i think about bwareafilt, but it dont work wiht diferent pictures because pictures resoliution changes. So i think i need to P get lower for 100, and chaking objects if, object aceptable area goes to other function if no, p more lowering.
Walter Roberson
Walter Roberson 2015-10-20
bwareafilt() has options for selecting how many objects you want to have output.

请先登录,再进行评论。

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by