0

このコードは、Matlab の画像から文字のセグメンテーションを実行することを想定しています。コードは Lucas から提供されたので、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

リンク: Matlab で文字のセグメンテーションを実行する方法

4

1 に答える 1

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 の提案に従って、提供されたリンクを確認してください。

于 2011-06-08T02:00:22.750 に答える