![]() |
代码说明-Matlab
该代码假设要在Matlab中对图像进行字符分割。代码是卢卡斯给我的,所以谢谢卢卡斯。
问题是我想精确地了解字符分割的方式,在理解之前我不想使用它。 谁能为我解释一下...谢谢。 卢卡斯代码: 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 链接: [URL="https://stackoverflow.com/questions/5305712/how-to-perform-character-segmentation-in-matlab"]如何在Matlab中执行字符分割[/URL] [B]回答:[/B] 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的建议,查看提供的链接。 [url=https://stackoverflow.com/questions/5324516]更多&回答...[/url] |
所有时间均为北京时间。现在的时间是 22:42。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.