Understanding a piece of code about extracting regions within an image

1 次查看(过去 30 天)
This is a licence plate extraction code. I have posted earlier a piece of code ( link ) where horizontal and vertical histograms representing the sum of differences of gray values between neighboring pixels in an image, column-wise and row-wise were used. A low pass filter was then applied on the histograms. After that, a threshold was applied in order to eliminate regions with low histogram values. Finaly, the algorithm finds the probabls regions and extracts the region with the highest probability of containing the license plate among those regions. I understand the whole idea but i have difficultie understanding the steps followed by the algorithm. PS: horz and vert are respectively the horizontal and vertical histograms after being passed through a low filter. why did he give the value of 'i' to column(j)? What do these lines refer to : [temp column_size] = size (column); if(mod(column_size, 2)) column(column_size+1) = cols?
if true
% %%Find Probable candidates for Number Plate
j = 1;
for i = 2:cols-2
if(horz(i) ~= 0 && horz(i-1) == 0 && horz(i+1) == 0)
column(j) = i;
column(j+1) = i;
j = j + 2;
elseif((horz(i) ~= 0 && horz(i-1) == 0) || (horz(i) ~= 0 && horz(i+1) == 0))
column(j) = i;
j = j+1;
end
end
j = 1;
for i = 2:rows-2
if(vert(i) ~= 0 && vert(i-1) == 0 && vert(i+1) == 0)
row(j) = i;
row(j+1) = i;
j = j + 2;
elseif((vert(i) ~= 0 && vert(i-1) == 0) || (vert(i) ~= 0 && vert(i+1) == 0))
row(j) = i;
j = j+1;
end
end
[temp column_size] = size (column);
if(mod(column_size, 2))
column(column_size+1) = cols;
end
[temp row_size] = size (row);
if(mod(row_size, 2))
row(row_size+1) = rows;
end
%%Region of Interest Extraction
%Check each probable candidate
for i = 1:2:row_size
for j = 1:2:column_size
% If it is not the most probable region remove it from image
if(~((max_horz >= column(j) && max_horz <= column(j+1)) && (max_vert >=row(i) && max_vert <= row(i+1))))
%This loop is only for displaying proper output to User
for m = row(i):row(i+1)
for n = column(j):column(j+1)
I(m, n) = 0;
end
end
end
end
end
end

回答(1 个)

Walter Roberson
Walter Roberson 2017-6-27
You can use the author's Contact link to ask "why"
  2 个评论
abich
abich 2017-6-27
Thanks. I just didn't understand the steps. Any hint or explanation would help. Excuse my ignorance.
Walter Roberson
Walter Roberson 2017-6-27
We did not write the code. We would have to read the code thoroughly and research to figure out which technique was being used and how it is intended to work, and then compare to the actual code to figure out why the author choose those values. That would take a lot more effort than it would take you to contact the author through the author's profile page.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Images 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by