Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- clear all; close all; clc;
- % First get yellow pixels only
- files = dir('Plate_IMG/*.jpg');
- for file = files'
- IM = imread(['Plate_IMG/', file.name]);
- IM_HSV = rgb2hsv(IM);
- IM_HUE = IM_HSV(:, :, 1);
- IM_SAT = IM_HSV(:, :, 2);
- IM_MSK = (IM_HUE >= (30/360) & IM_HUE <= (65/360) & IM_SAT >= 0.3);
- %figure(2*i);
- %imshow(IM_MSK);
- CC = bwconncomp(IM_MSK);
- L = labelmatrix(CC);
- stats = regionprops(L,'all');
- ec_vec = [stats.Eccentricity];
- [~, ind_ec] = find(ec_vec > 0.99 | ec_vec < 0.96);
- struct_ec = CC.PixelIdxList(ind_ec);
- ec_ind_rem = cell2mat(struct_ec');
- IM_MSK(ec_ind_rem) = 0;
- %figure(3*i);
- %imshow(IM_MSK);
- se = strel('rectangle',[5, 5]);
- IM_MSK = imfill(IM_MSK, 'holes');
- IM_MSK = imerode(IM_MSK, se);
- IM_MSK = imdilate(IM_MSK, se);
- IM_MSK = imdilate(IM_MSK, se);
- IM_MSK = imerode(IM_MSK, se);
- CC2 = bwconncomp(IM_MSK);
- L2 = labelmatrix(CC2);
- stats2 = regionprops(L2,'all');
- sol_vec = [stats2.Solidity];
- [~, ind_sol] = find(sol_vec == 1 | sol_vec < 0.8);
- struct_sol = CC2.PixelIdxList(ind_sol);
- sol_ind_rem = cell2mat(struct_sol');
- IM_MSK(sol_ind_rem) = 0;
- %figure(4*i);
- %imshow(IM_MSK);
- CC3 = bwconncomp(IM_MSK);
- L3 = labelmatrix(CC3);
- stats3 = regionprops(L3,'all');
- area_vec = [stats3.Area];
- [~, ind_area] = find(area_vec < max(area_vec));
- struct_area = CC3.PixelIdxList(ind_area);
- area_ind_rem = cell2mat(struct_area');
- IM_MSK(area_ind_rem) = 0;
- %figure(5*i);
- %imshow(IM_MSK);
- figure();
- subplot(1, 2, 1);
- imshow(IM);
- subplot(1, 2, 2);
- imshow(IM.*uint8(IM_MSK));
- end
Advertisement
Add Comment
Please, Sign In to add comment