【发布时间】:2014-05-16 14:57:10
【问题描述】:
我有一个 MATLAB 代码,可以在每个字母周围绘制边界框。
我想在每个单词而不是每个字符周围画这些框。
我想到了
- 读取单词之间每个空格的大小,并在此基础上分离每个单词。
- 将相邻的矩形分组为更大的矩形,这对我来说基本上是做同样的事情。
如何做到这一点?
这是目前的图像:
到目前为止,这是我的代码:
%CLEAR EVERYTHING
clear all;
close all;
%SET FOLDER AND FILE LOCATION
folder = 'H:\Miscellaneous\Work\Project';
baseFileName = 'lorem-ipsum.jpg';
fullFile = fullfile(folder, baseFileName);
%CONVERT TO GRAYSCALE
normal = imread(fullFile);
gray = rgb2gray(normal);
%CONVERT TO BINARY IMAGE
binary = im2bw(gray);
%INVERT IMAGE
binary = ~binary;
%FILL HOLES
ifill=imfill(binary,'holes');
figure,imshow(ifill)
%COUNT LETTER IN TEXT
[Ilabel num]=bwlabel(ifill);
disp(num)
%CALCULATE REGION PROPERTIES
Iprops=regionprops(Ilabel);
%SET BOX PROPERTIES INTO VARIABLE
Ibox=[Iprops.BoundingBox];
%RESHAPE 1-D ARRAY
Ibox=reshape(Ibox,[4 num]);
%DRAW BOUNDING BOXES FOR EACH LETTER
for cnt=1:num
rectangle('position',Ibox(:,cnt),'edgecolor','r');
end
hold off
【问题讨论】:
标签: matlab