代码说明 - Matlab

时间:2011-03-16 11:18:31

标签: matlab image-segmentation

此代码假设从Matlab中的图像执行字符分割。 代码是卢卡斯给我​​的,谢谢卢卡斯。

问题是我想要准确理解字符分割是如何完成的,我不想在理解之前使用它。

任何人都可以为我解释...谢谢。

Lucas代码:

    clear all; 
    close all; 
    I = imread('plate.jpg'); 
    BW = im2bw(I, 0.9); 
    BW = ~BW;   
    stats = regionprops(BW); 
    for index=1:length(stats)
        if stats(index).Area > 200 && stats(index).BoundingBox(3)*stats(index).BoundingBox(4) < 30000     
        x = ceil(stats(index).BoundingBox(1))     
        y= ceil(stats(index).BoundingBox(2))     
        widthX = floor(stats(index).BoundingBox(3)-1)     
        widthY = floor(stats(index).BoundingBox(4)-1)     
        subimage(index) = {BW(y:y+widthY,x:x+widthX,:)};      
        figure, imshow(subimage{index})    
    end 
end

link:how to perform character segmentation in Matlab

1 个答案:

答案 0 :(得分:1)

clear all; % clear out workspace memory
close all; % close all figures
I = imread('plate.jpg'); % load image jpg into I
BW = im2bw(I, 0.9); % convert color image to black and white image
BW = ~BW;   % swap black and white
stats = regionprops(BW); % compute 'Area', 'Centroid', and 'BoundingBox' measurements.
% The regionprops operation is what "cuts up" the image into possible pieces of interest.
% You will need to develop your own code for processing.
for index=1:length(stats)
    % if the stats of the region meet a certain criteria
    if stats(index).Area > 200 && stats(index).BoundingBox(3)*stats(index).BoundingBox(4) < 30000     
    x = ceil(stats(index).BoundingBox(1))     
    y= ceil(stats(index).BoundingBox(2))     
    widthX = floor(stats(index).BoundingBox(3)-1)     
    widthY = floor(stats(index).BoundingBox(4)-1)
    % extract a subimage from the original image and show it.
    subimage(index) = {BW(y:y+widthY,x:x+widthX,:)};      
    figure, imshow(subimage{index})    
end 

根据Eugene的建议,请查看提供的链接。