Bonjour , je travail actuellement sur un système de reconnaissance manuscrite
en utilisant l'algorithme IBR.
Mon probleme est lors de l’implémentation de cet algorithme , j'utilise un cell array pour stocker des blocs représentés par 4 valeurs x1y1 pour le coin gauche superieur et x2y2 pour le coin droit inferieur.

je parcours mon image ligne par ligne en détectant les intervalles de pixels utile , mon problem est que j'ai besoin de fusionner les lignes qui ont les mêmes pixels , mais je n'arrive pas a classer mon celle array de façon 2D les blocs sur la même ligne seront sur une ligne ETC.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
 
function [ B ] = theIBR( img )
%THEIBR Summary of this function goes here
%Decompose l'image binaire en block
%   Detailed explanation goes here
[N M] = size(img);
x1 = 1;
x2 = 1;
y1 = 1;
y2 = 1;
 
y = 1;
x = 1;
xb = M;
 
Kb = 0 ;
K =0;
 
 
 
found = 0;
while (y <= N)
    x = 1 ;
 
    while (x <= M)
 
 
        if(img(y,x)==0 && x<= M) 
            x1=x;
            found= 1; 
            K = K+1;
            B{y,K}(1) =  x1; B{y,K}(2)= y;
        end
 
        if(img(y,x)==0 && found== 1 && x<= M) 
 
            while(img(y,x)== 0 && x<=M)
                x=x+1;
            end
            x2 = x-1;
            B{y,K}(3)= x2
            B{y,K}(4)= y;
        end
 
        if(img(y,x)==1) 
            x=x+1;
            found = 0;
        end
 
    end
 
 
    y = y +1;
 
end
j'ai utiliser une solution disons pas très propres pour obtenir les lignes séparés maintenant je veux pouvoir supprimer les cell vides tout en gardant la disposition des cells (j'ai essayer avec isempty elle me rend les cells dans le premier ordre qui m'est inutile )

Merci beaucoup j'espere que vous pourrez m'orienter pour trouver la solution j'ai jamais travaillé avec matlab auparavant !