Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
高级会员
注册日期: 2019-11-21
帖子: 3,006
声望力: 66 ![]() |
![]()
该代码假设要在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 链接: 如何在Matlab中执行字符分割 回答: 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的建议,查看提供的链接。 更多&回答... |
![]() |
![]() |