CA1270952A - Process and device for sequential image transformation - Google Patents

Process and device for sequential image transformation

Info

Publication number
CA1270952A
CA1270952A CA000515504A CA515504A CA1270952A CA 1270952 A CA1270952 A CA 1270952A CA 000515504 A CA000515504 A CA 000515504A CA 515504 A CA515504 A CA 515504A CA 1270952 A CA1270952 A CA 1270952A
Authority
CA
Canada
Prior art keywords
pixel
pixels
value
neighborhood
coded
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired
Application number
CA000515504A
Other languages
French (fr)
Inventor
Jean-Claude Klein
Fernand Meyer
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Association pour la Recherche et le Developpement des Methodes et Processus Industriels
Original Assignee
Association pour la Recherche et le Developpement des Methodes et Processus Industriels
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Association pour la Recherche et le Developpement des Methodes et Processus Industriels filed Critical Association pour la Recherche et le Developpement des Methodes et Processus Industriels
Application granted granted Critical
Publication of CA1270952A publication Critical patent/CA1270952A/en
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration by the use of local operators

Abstract

ABSTRACT OF THE DISCLOSURE:
The transformation applies to images defined by pixels each presenting a characteristic, such as a brightness, defined by a digital value, with the pixels being distributed according to a matrix and their relations and distances established by a neighborhood graph. All or part of the image is explored according to a predetermined exploration mode and the value of each pixel is modified as a function of the values of a set of associated pixels, assuming their value in at least the image and being located inside a sliding window related to the pixel to be transformed, identical for all pixels and constituting a structuring element. The transformed version of each pixel is immediately substituted for the preceding value in an image memory. To implement the process, a device can be utilized having a morphological opening processor, an image memory and a morphological processor with rewrite processing.
(Figure 1)

Description

~ROCESS ~ND ~EVICE ~OR SEQUENTIAL IMAGE_TR~NSFO~MATI~N
T~s ~pplicatlon i6 ral~ted to co-pending Appliration Serial ~o. 515~190 , ~iled Aug. 1, 1986 , and is ~ssigned to the same assignee as the preRent appl~cation.
BACKGROUND OF THE INVENTI~N
The invention pertain~ to the domain of the processing of i~ages defined by pixel~ each presenti~g a characteri~tic, such as a brightness, defined by the digital value of a function.
More speci~ically, it pertains to a process for the e~guential transfor~ation of images, according to which a mode i5 defined for ~he scanning of all or part of the im~ge, and the ~alue of eac~ point i6 ~od~fied 8S a ~unction of a set of associated pixels taking on t~eir ~alues in one or ~everal images and being located w~thin a ~liding linsar or ~urface window related to the pixel to be transformed, identical for all pixels and constituting a 6tructuring element. It c~n be ~pplied in all areas of ~age analy6i~ ~nd e~peci~lly in tho6e of pAt~rn recognitlon and indu6trial product d~splay, especially in ro~otics.
Saguential image transformations have been known for a long time. ~or example, ~ description can be ~ound in the article by A. Rosenf~ld et. al. ~'Sequential operations in digital picture processing: J. ACM, Vol 13, Mo. 4, 1'~66, pp. 471 4g4~
To facilitate the under~tanding of the invention, daf~nition~ wlll ~e ~ir6t be given ~or eequentlal tran~ormations ~T~

.. , , .. , .; .. .. .

: . , , -. ~ . :,.
- ... ".... . . ..

. ~ . . ~ , .

~ X 7 ~3~
and the terminology which will be adopted, which is that curren-tly utilized in the area of digital image processing.
~ digitized image is comprised of a matrix of pixels having m lines and n columns. Each pixel has a value aij belonging to a finite family of values vl,...,vx. In practice, k = 25 is adopted, with s being a whole number, (which signifies that each value is represented by a number of s bits and that 2s levels of quantification are available).
The neighboring pixels of each given pixel will be defined by a neighborhood graph, examples of which will be given below, and which will naturally be different depending on whether the ~rame utilized is square or hexagonal and on the de~ree to which the notion of the neighborhood is extended.
An operation on a digitized image will be constituted by a function transforming the matrix of the image into another matrix. The most general function of this type thus has m x n arguments if each pixel constitutes an argument and if the matrix has m lines and n columns. The number of arguments is decreased by effecting "locall- or "neighborhood" operations. A
neighborhood transformation defines the value of the pixel transformed solely as a function of the value o~ the original pixel and values of the associated pixels, taken in a constant arrangement around the pixel considered. This constant arrangement constitutes a slide window related ~o the point to be transformed. The pixels can have their value in one or several images. This value can be the value of the points before the transformation ha~ been implemented: in this case, it pertains to a parallel transformation. ~he structuring element .
, . ~ ... :
~ ' .

~ 3~

is not necessarily comprised of the immediate neighbors o~ the point to be trans~ormed. With ~he notion of immediate neighbors keing thus defined through the use of a neighborhood graph, the different types thereof will now be examined.
As an example, the principal neighborhood graphs encountered in practice will now be given.
Square array:
Two neighborhood graphs are currently utilized. They correspond respectively to a four connexity and an eight connexit~.
In the case o the four connexity, each pixel x has four neighbors xl, x2, X3, X4, distributed as follows:

x3 x x~
x4 The distances d between the pixel considered x and each of the neighboring pixels are all egual.
In the case of an eight connexity, each pixel x has eight naighboxs, xl,..., x8 in the following distribution:

X4 X3 x2 x5 x xl X6 x7 x8 In this case, the distance between:

~ - the pixel considered x on the one hand, each of pixels xl, x~, X5, X7, on the other hand, has a value dl = 5, ~ :.
' ''' ` ,, ' :, '; ': . ' - .. .: ::

:-;; .-, ...., .-;.,., : :;::, .: .

. .::: : .

- the pixel d on the one hand, each of pixels x2, X4, x6, x8, on the other hand, has a value d2 = 7.

ThesP distances are in the ratio of 7/5 = 1.4, close to ~ .

Hexaqonal frame:

In this case, a six or twelve connexity can be adopted.

In the first case, each pixel has six neighbors xl,...,x6, ~ all equidistant from the pixel considered x:

x3 ~2 x4 x x x5 X6 In the case of the twelve connexity, each pixel has twelve neighbors xl,...,xl2 distributed as follows:

X6 X5 X3 x2 X7 x x1 X8 xg x~1 x~2 x1o In this case, the distances between x and all odd index points are equal and have a value of dl = 4; the distances between x and all even index points havs a value d2 = 7. As such, the ratio between t.hese two distances is 1.75, close to ~.`
In the de6cription of the invention, for the sake of simplicity, examples given will be limited to tho~e corresponding only to specific connexities which are typical. But it will be : :
.

. :: , -:, . ... .
:: , , . .: . .
- . .: ,., ;: , ~ ~ 7~

seen that the invention in all cases can be transposed to various possible pattern~ and connexities.
Neighborhood transformations are conventionally effected by parallel processing. Transformation is done on all points of the image, independently from each other~ Arguments (a~
ai~l, j+ll...) taken into account in the transformation of pixel aij are always the values of the pixels in the neighborhood in the initial image. Each of the new pixel values are stored , i.e., value a*ij for pixel aij, but no transformed pixel is utilized before the transformation has been done for all of the m. n pixels.
This method of transformation presents an advantage which, up to now, has led technicians to adopt in on a virtually exclusive basis: the subjacent algorithms are conceptually simple and it is easy to design a device to implement them.
Moreover, the result of the transformation is independent of the mode of image scanning, which allows the usual image scanning method to be used, as well as conventional address generators.
But it was not fully appreciated that each transformation taken on an isolated basis is inefficient and in gensral a great number of suacessive passes is necessary before the final result is obtained. To reach higher speeds, the processors in a same device must be multiplied, which makes it complex and highly axpensive.
Conversely, se~uential transformations described in the aforementioned Rosenfeld et. al. article present the characte-ristic of providing a result which depends on the mode and direction in which the initial image is scanned. If, for ~ ~ ; . . r ' '~`
`~', ' , ', ~, ' ' ~ ' ,.

~ ~ 7~3~

example, the initial digital image is explored using a conven-tional rester ~can which will be called ~direct video scan-ning" i.e., line by line, from left to right and top to bottom, a sequential transformation gives, from the initial pixel aij on, the transformed pixel a*ij:

a~i j = f ~ ~a*k)k ~ P(i j)' a~ ak~k ~ F(i,j) ] ( ) Clearly, each time a pixel is transformed, its new value (~ather than its value in the initial image) is used as an argument to transform the subsequent points which contain it in their structuring element.
Formula (1) corresponds to scanning in the direct video direc~ion. In this formula, (a*k), k ~ P(i j) is the family of points in the neighborhood of aij which have already been encountered during the scanning of the image before pixel aij and as such have already acquired their new value.
Conversely~ tak~k~F(i,;) desiynates the group Fij, the family of points in the neighborhood of the pixel considered aij which have not yet been encountered during the saanning of the image at the time pixel aij is being processed.
The algorithm corresponding to the seguential transformation in the inverse video scanning direction, i.e.

mn~ am,n~ a~1'am-1,n' ~ am-1,1' ~ a2n'~
a12, a11 ensues directly from formula (1).

SUMMARY OF THE INVENTION

1 ~ 7~3~
The invention makes use of the finding that it is possible, by effecting a series o~ sequential transformations, and by inverting the direction of the scan for each new transformation, to obtain a result equivalent to that of a much longer sequence of parallel transformations. Better yet: in most cases, the result is obtained after a fixed number of scans independent ~rom the content of the image: the fixed number is most often equal to 2 (one direct end or reverse scan) or 3.
Consequently, the invention provides a process for the transformation of an image defined by pixels, each presenting a eharacteristic, such as a brightness, defined by a digital value, with the pixels being distributed according to a matrix and their xelations and distances established by a predetermined neighborhood graph; part of the image is explored according to a predetermined scanning mode and the value o~ each pixel is ~odified as a function of the values of a set o~ associated pixels, which assume their value in at least one image and are located inside a slide window related to the pixel to be transformed, identical to all of the pixels and constituting a structuring element, wherein the transformed version of each pixel is immediately substituted for the previous value in an i~age memory and in that, after symmetry or rotation of the structuring element, the same transformation is repeated, using a scan in the direction opposite the previous scan.
It will often be advantageous to temporaxily store the transformed pixels in a local memory so that they can be used to effect the transformation of the neighborhood on at least one point following the scan.

.. . . . . .... .. .

- : .: ,.. . ;~ .. , -;
,. ,:. , ;, . :, .

:
:. ,.. :
: '.' ' , . :
.. : ~ . . :.

~ ~ 7 0~3~

The above defined process can be qualified as involving the immsdiate rewriting of t~e new value a*ij immediately after it is calculatad.
The above defined process can be incorporaked into numerous, more complex, transformations and into types of scanning other than conventional scanning by line and frame (rester scanning), especially scans along diagonals in the image. The process o~ transformation with rewrite can especially be incorporated into processes of image erosion, determining of regional maxima, grain reconstruction and skeletonization. It can also be applied in the case where the digital image is a binary image, with the levels of quantification for each pixel being O and 1 only.

BRIEF DESCRIPTION OF THE DRAWINGS
The invention will be better understood from the following description below of specific embodiments, provided as non-limitative examplPs. The description refers to the accompanying drawings, in which:
- Figure 1 is a block diagram showing the general architecture of an image analyzer allowing the imple-mentation of the invention and comprising a rewrite processor.
- Figure 2 is a local ~torage and rewrite device for a sphere matrix which can be incorporated into the device in Figure 1 to execute the ERODE functlon and grain reconstruction, - Figure 3 is a diagram intended to show the di~ference .. .:, '' "'; ' ` :':

.. ..

~L~ 5~

between the euclidian distance and the geodetic distance~
Figures 4 and 5 show, as examples, and for the same set X, thP. euclidian ERODE function and the geodetic ERODE function conditionally for a specific set y, Figure 6 is a block diagram of a processor for computing the geodetic ERODE function, Figure 7 is a block diagram of a processor allowing grain xeconstruction with rewrite, Figure 8 is a drawing of a local ~torage device for hexagonal pattern parallel transformations, Figure ~A is a block diagram showing the modification to be made to the device in Figure 8 to execute a local storage and a triple rewrite for hexagonal sequential transformations, Figures 9A to 9E are drawings successively illustrating an initial binary image, the associated ERODE function, the associated RELIEF function, the marking of the peak lines to obtain a rough sketch of the skeleton and the return in the upstream direction following three sequential transformations, the first in the direct video direction, the second in the inverse video direction and the last in the direct video direction, Figure 10 is a block diagram showing a possible assembly of a device to detect skeletal peak points, Figure 11, similar to Figure 10, shows a possible embodiment of the device for the return in the upstream direction of the skeleton, , . , . . . . . . . ., ..., ..., , , .... ~ .. .
, . ; . ~: :

` ~ '". " :``, ` ," ::., a - Figure 12 is a block diagram showing an example of the direction by direction processing procedure.
DESCRIPTION OF THE PREFERRED EMBODIMENTS
The invention can especially be implemented in an image analyzer having a conventional ganeral design~ such as that shown in Figure 1, but having a morphological rewrite processor.
The analyzsr in Fiyure 1 comprises an image acquisition component 10 (camera or recording), whose output signals are digitized in a circuit 12, with each pixel being represented by a number comprised of several binary elements or "bits" ~digital image). ~he signals are applied to a write bus 14 connected to a display memory 16 having a content corresponding to the number of pixels of an image to be provided on a display component 1~ such as a cathode ray tube.
The analyzer comprises two identical read buses, which can be connected to other components, such as tape recorders, etc.
The data circulating on these input busses is applied to an arithmatic and logical unit 24 which can effect operations of addition, subtraction, iearch for minimum and maximum among pixels. The outlet of the unit 24 is connected to a morphological neighborhood processor 26 which allows parallel t~ans~ormations of the neighborhoods to be effected.
The read busses 20 and 22 are also connected to a morpholo gical processor 28. ~he output of processors 26 and 28 is applied, using a common bus, to a circuit 12 whose role is to provide stop criteria ~or the rewrite processor. ~his circuit conducts an integral measurement. But a more advantageous stop test can be implemented in the processor itself, for all - . :
:, , ;, , ' : ' ' ~
, . ': . ' ' ' ~, ~ 3~

trans~ormations which do not lead to the result in a fixed number of transformations. Indeed, it may consist of a comparator which compares the initial value to the transformed value of each pixel in turn. As long as a transformation couple in the direct direction, then in the inverse direction modifies a single plxel, a new transformation couple must be carried out. The comparator has as inputs the values of pixels aij and aij* (former value and transformed value). The output o~ the comparator constitutes the input of a OR gate. The output of the OR gate is connected to the input of a ~lip-flop which can store one bit. The flip-flop is reset at the beginning of a transformation couple and set to 1 as soon as the two pixels aij and aij* have different values.
The output of the flip-flop is reinjected into the OR gate so that the flip-flop remains locked at 1 until the end.
Finally, the busses are connected to a random access memory 30 having sufficient capacity to store two or three complete images, which can be considered as occurring in three parts A, B, C.
So that the analyzer in Figure 1 can implement the process according to the invention, the morphological processor 28 is comprised of two modules 40 and 42. The module 40 constitutes the rewrite device and has the function of presenting the module 42 which constitutes the processor ~ith all of the arguments it naeds to effect the transformation (1).
In order to minimize the number of ~memory> accesses ~or the image ~> 30, the rewrite device 40 advantageously comprises a local memory 41 in which all of the pixels are stored which have already served in the transformation of the pixels encountered ~;

., : .. - . :
, , ., ~. :
;. .. ~, :
-,, 1 ~ 7~

before pixel aij during the scan and which will still serve in the transformation of the pixels which ~ollow pixel aij. In other applications, the local memory 41 is also desiynPd to receive pixels at once before and after aij.
As soon as it is calculated by the processor 42, the new value a*ij is recorded in the image memory 30 as well as in the local memory 41 of the device AO so as to serve as an argument for the transformation of the subsequent pixels.
The composition of the rewrite processor 28 and its memory will depend on the type of ~rame and neighborhood graph adopted.
Figure 2 shows an assembly of the processor 28 which can be used when the scan is the video type in the direct and inv~rse directions, corresponding to a rectangular frame. But, as was indicated above, a hexagonal ~rame can be used.
In the case of direct video scanning, the values presented to the processor 42 must be:

a i-1'j-1 a*i_1,j a i-1,j+1 (2) a i,j-1 ai~j In the case of grain reconstruction, the value bi j read ~rom the memory b, is also presented to the processor 42.
The local memory 41 shown in Figure 2 must simultaneously make available, for the processor 42, the pixel on which the transformation is being executed and four already transformed pixels. To do so, it comprises a random access memory 34, having a capacity corresponding to n-l pixels. This memory can be a RAM

. - ~
;- . : .,:
. ,, ::
- . :
. ,:: '':. . ... .
.,: ,-,, :: , ;; :
- ~
" .: . ...
- . ,:;, .,: ::
- . . . ~.

1~ 7~3~3~
addressed by the address bus 350 The output o~ data from the memory 34 drives two cascade mounted ætore elements 36 and 38, each having a capacity for a single pixel (generally flip-flops).
~ he processor output 42 is connected to ~he memory 34 input and to the input of a memory component 44 having a capacity for a single pixel, as well as the memory 30 write bus.
Moreover, in the case shown, the memory 30 is also connected to store elements 46 and 48 whose capacity is for a single pixel.
It is seen that the outputs of memory 34 store elements ~6, 38, 44, 46 and 48 allow the simultaneous presentation of the value of six pixels to the processor 42. These six valuPs are applied to inputs El, E2,... E6. The trans~ormation to be made determines the constitution of the processor 42, the distribution o~ the pixels stored in the store elements and that appliad to the processor 42.
~ he assembly as shown allows the erosion function in square frame and grain reconstruction to be achieved, as will be seen below in greater detail.
The following can especially be present in a simultaneous manner, at the output of the various elements:
- for the store element 46 for pixel aij, simultaneously with the reading of pixel a~ in part A of the memory and transfer to 46, - for the store element 48 for pixel bij, simultaneously with the reading of pixel bi j+l in part B v~ the memory, As for the other elements, they provide the following when a*i,j is applied to 34 and 44: .

.. ~

~ .... .
..
.
~' ". ,~ ~ :
','' ;.
.,' ~ ' , .

r3-~
- for the store element 44, already transformed pixel a*i,j~

- for memory 34, already transformed ~alue a*i-l j+l;
- for tha store alement 36, already transformed value a*i-l,j;
- for the store element 38 already transformed value a*i~

1~
The operations are synchronized by a clock signal H issuing from the system's time base.
During the scan in the opposit~ direction, the structuring ele~ent associated with aij undergoes a symmetry with respact to point ai;. Thus, the store element of the device 41 which contained pixel al s during the direct scan now contains pixel a2i_l, 2j- S~
Some of the most important of the various devices which each allow a specific transformation to be effected will now be described.
ERODE function The ERODE function i6 already known. J. SERRA, "Image analysis and mathematical morphology", Academic Press, 1982, pp.
~3-45 aan be aonsulted for the definition of erosion, and the a~orementioned Rosenfeld article, for a definition of the ERODE
function under the name "distance transformationl'.
Here, it is sufficient to remember that the ERODE function for a binary image X, conditionally for a binary image Y, is a digital function, which is designated by ERODE y (X) and which is defined perfectly by its successive thresholds. With Sn being ... . , , .. .. ,.. . ~, .. . , .. ~ . ...
:,. . . .
-. ~ :. ... .. . ..
; : . . ... .
. - . , : ;. .~ . .
;".".. ,.' ., ,.. " ; ':
. : ., ,,;

~ ~ 7 ~

the level n threshold for the ~unction ERODE y (X~, it is defined by the recurrence relation:

so - x u Y
Sn = (Sn 1 0 H) U Y, ~u ~3 ~

where e H represents the smallest degree of erosion by a surface isotropic element.
When Y is not an empty sek, ERODE y (X) represents the length of the shortest path going from x to xC and bypassing Y, i.e., in Figure 3 the path from x to z.
~ special case is that in which the set Y is empty. In this case The geodetic distance is to the euclidian distance xz0 of x (Figure 3).
Figures 4 and 5 show, as an example, in equare frame and for the same complex X, the euclidian ERODE function (Fiyure 4) and the geodetic ERODE function, conditionally for a Y eet comprising ~our pixels in a square arrangement (Figure 5).
Before describing the implementation of the process using a device having the composition shown in Figures 1 and 2, a detailed explanation of the processing procedure will be given for the specifia case of a square pattern, in eight connexity and with real distances between pixels, with adaptation for another ~rame or to another connexity being immediate.
In the most general case, the process must allow the gaodetic ERODE of a binary complex X to be determined conditio-nally for a binary complex ~. In a preferred tthough non-limitative) implementation of the process, allowing calculations to be simplified, an initialization is done consisting of . . . .. . .. . , , . . . ...,, . , ., , . ~

, -., , ,; ~

encoding the initial image to create a trans~ormed initialdigital image F such thak:
F(x) = Max if x~ Y
F(x) = Max - 1 if x~ X n yC
F~x) = O if x~ Xcn yC
With Max designating the maximum available value 2s and yC being the complement of Y.
The current part of the process consists of repeating a group of two successive passes, with the first pass being in the direct video direction and the second in the inverse video direction In tha euclidian case, two successive passes are sufficient to obtain the result.
In the geodetic case, on the contrary, the succession must ba repeated until stability, i.e., until two additional passes no longer modify any points, which involves a test.
During sach pass, the configuration of the neighborhood, with a square patkern, is assumed to be as follows:

ai-l, j-1 ai-1, j ai-1, j+l i, j-1 ail j ai, j+1 ai+1, j-1 ai+1, j ai+1, j+1 The rules for the trans~ormation of each point in this case, for direct video scanning are as follows:

if: a j - Max ' a i,j .

, :. . . : ~ , ", .. :,. :, . ...
:",, .:

:.

- ; ,., , ., .,, ~

a i,j ~in [ai,j, i-1,j i,j 1 7 + Min(ai_1 j+1~ ai-1,j-1)]

Conversely, the following applies during an inverse video scan:
-if: ai j - ~ax , a~i j = Max otherwiSe: a~i j ~ Min [ai j, 5 ~ Min(a~ +1- a i+l,j) 7 ~ Min(a~i+1 j-1~ a~i+1,J+1)]

, ~ ,, :

:: ,:.. : :, . : . .
.,. , - . . ,:.
: .

In th~ case of a hexagonal pattern, the value a*i.j (when al j is not equal to Max) is different, the following can be adopted:

a*i j = Min [ai jl 1 + Min (d~,e~,g*)~

a*i j = Min [ai j, 4 + ~in ~d*,e*,g~) r 7 ~ ~in ~c~,b*,f*)J

where b, a, d, e, f, g, are arranged as follows, during the direct scan:
b c d e f g ai , j with the arrangement being inverted for the inverse video scan.
It must be noted that, as compared with the Rosenfeld article mentioned above, the introduction to two differen~

distances between two adjacent points on horizontal and vertical lines on tha one hand and on diagonal lines on the other hand, constitutes an important innovation, because it allows a much more faithful representation of the distances to be obtained.

1~

.. ~, .. .
- ~ . , .:. ..
. :. . .. " .... ;
:: :
".:,;, . . .: . ~ . ~ ,.. . . .

;............... . ~ .: . .: , . .
: :", . :.. .: ............. ..
- .. :: - : :.:
: :.:

~ ~ 70~
As such, the process can be implemented using the device sho~n in Figures l and ~, with de~ice 40 presenting to the ~rocessor 42 the following neighborhood during the direct vid~o scan (with El ~o Es designating the inputs of 42):

a~ a i-1,j a i-1,j+1 E5 E4 E3 a*i j-1 aij E2 E
and, during the inverse video scano aii i, j+1 E1 E2 aXi+1 i-1 a i+1,j a l+1,j+1 E3 E4 E5 The composition of the processor 42 can as such be that shown in Figure 6, with the input E6 shown in Figure ~ not being assigned.
~ he device 42 in Figure 6 comprises two input branches. ~he first branch comprises an operator 52, comprised of a comparator controlling a multiplexer with two input lines, providing on its output the minimum of the two values applied to its input. These two inputs are those identified by E2 and E4 in Figure 2. The output Fl and the operator 52 is sent to a correspondence table 54 which transforms Fl into F'l defined by:
i~ Fl < ~ax - 5 , F'l = 5 ~ Fl otherwise, F'1 = Max.
The second branch has the same composition and-ex~cutes the same operations on inputs E3 and E5 to provide a value F'2 if it .
: ' . ~ " '- .. , : .
, - , ~. : ~ .- , . . ., :, ;, .. ~ . ~

~ ~ 7~
is only that the correspondence table of this branch transforms F2 into F'2 defined by, i~ Fl ~ Max ~ 7 , F'~ = 7 ~ F2 otherwise, F'2 = Max.
Values F'l and F'2 are applied to the two inputs of an operator 5S which provides at its output the minimum G of F'l and F'2 and applies it to one of the inputs of a comparator 58 and a multiplexer 64.
The second input of the comparator 58 constitutes input El of the rewrite device 42. This comparator is such that it provides, on its output, a signal J equal to:
1 if El is lower than G
0 in the contrary case.
The signal J is applied to one of khe inputs or a OR gate 60. The other input of gate 60 is connected to the output of a comparator 62 providing a signal if the inputs are egual. The output æignal H of the comparator 62 is equal to 1 if El = Max.
In the contrary case, ~ = 0. Consequently, it is seen that the output I of gate 60 is equal to J if H has a value of 0, thus if El is not equal to Max.
The output signal of gate 60 is applied to the multiplexer control input 64, whose second data input receives the signal ~1.
Gate 60 thus determines that of the inputs of the multiplexer 64 which is connected to its output, which constitutes output S of processor 42 connected to the write bus for writing into part B
of memory 30, in the random access memory 34 and in the register 44.

~ 20 ... -: , ~

:.
.,~
~ - : .
-,:, ., :

~ 2 70 ~jX

The ERODE function bY rewrite processinq accordinq to lines havinq any orientation It can be advantageous to design an architecture for image analysis using commexcial integrated circuits having, in the same box, a processing component and a memory component. In this case, it is interes~ing to break down the processing of the image into independent tasks to b~ effected on a parallel basis, with a processor being dedicated for each independent task. The ERODE
function lends itself well to such a breakdown into sequential linear transformations which are sequential, i.e., which utilize and modify only information contained in a line of predetermined orientation of the image. In this case, the processing will involve several passes, with each modifying the result of the previous pass and working in a different direction. For a given direction, the processing of each line of the image is independent of the processing of all the other lines. As such, each line can be processed by to a dif~erent processor, with all of these proces ors working in a parallel.
Another advantage of this method of operation is to allow much more isotropic structuring elements to be generated, introducing unusual directions (such as ~/2 in a hexagonal grid).
The taking into account o~ these directions ln conventional video scanning would be very expensive because it would re~uire the use of very large structuring elements.
It will now be demonstrated how an ERODE processing can be effected with line by line rewrite; for purposes of simplification to the euclidian ca~e in a square pattern will be considered.

. .
. . ,.: .. ,; , ;

. .
. . . .

.7~
The initial image will be coded as follows (with the notations being those already utilized)~
F(x) = Max if x ~ x F~x) = O otherwise Thus, each of the following directions is processed one a~ter the other:
0 ~/4, ~/2 3~ , 5~/~, 3~/2 7~/~

and, for each direction, the following algorithm is ex~cuted:

aXi = ~in(a~ + kj, ai) where k; represents the distance between two consecutive pixels ~or the exploration direction j, i.e., for example k = 5 for directions 0, ~/2, ~, 3~/2; k = 7 for directions ~/4, 3~/4, ~/4, 7~/4 in square frame.
To effect this transformation, one processor of the type represented in Figure 12 can be utilized for each line.
This processor comprises a scanning microprocessor 11~
and an accessible exploration random access image memory 116 and a pixel by pixel accessible random access image memory 116, connected to the microprocessor by an address bus 118. Since the axploration of lines having any orientation requires a more elaborate address generator than those normally utilized, a good solution consists of utilizing a microprogrammed micro-processor 114 in slices. ~he processor also comprises blocks 120 and 122 of AND gates, each driving a register 124 or 126.
The register 126 is connected to a read table 128 having a role which is similar to that of the tables shown in Figures 10 and .;: .. : .-. -.,;- ,,, : - -- . : ~.,: . .. .
' ~

11. Finally, a proce~sor 130 receives the outputs of 128 and 114 and provides the minimum of the values received. An initialization inpu~ (not shown) allows the M~X value to be introduced into registers 124 and 128.
In steady operation, the memory 116 is r~ad along a line in the direction chosen for the processing and the values of pixels al, a2,... ai,... an are presented to the processor.
When the m-mory 116 presents the value ai+l to the register 124, the latter presents the value ai to the processor 130. The output o~ tha proces~or 130 is written in image memory 116 as well as in the register i26 by the bus 132. The output a*i 1 o~ the register 126 undergoes an addition as ~ollows in table 128:
if a i 1 ~ Max - k, bi- 1 = a*i-l ~ k otherwise, b i 1 = Max where k = 5 when dealing with processing directions:

0. ~/2, ~, 3~J2 K = 7 in directions:

~l~, 3~/4, s~

The value bi 1 constitutes the second input o~ the processor 130. It is seen that, as such, the aforementioned algorithm is implemented.
Grain reconstruction with,rewrite Grain reconstruction aonstitutes a transformation which is .

' .:' ... .
. .. ~:,., , .

1 ~ 7~)~3~

known in and of itsslf, a description o~ which can especially be found in the Serra book cited above, pp 401 - 403.
The result sought by the invention is to effect a digital reconstruction of the grains of a digital image A based on a digital image B.
To do so, the implementation of the algorithm below is repeated until stability is reached:

A - Min tA ~ H, 8]

where Al is substituted ~ox A for the subsequent operation and H
is the elementary hexagon (or square) in the pattern.
The rewrite algorithm below allows the same result to be obtained with a much smaller number of passes than with the conventional algorithm.
The implementation device may also be that shown in Figures 1 and 2, but with a processor 42 o~ a different composition than that shown in Figure 6.
In the specific case of a square pattern in eight connexity, the processor 42 can have the con~titution 6hown in Figure 7.
Since the neighborhood is that already defined in (2) above, the following transformation must be made:

= Min~bij, MaX~aiir a*i,j-t~ 1' a i-1,i' a i~ 1)]
in direct video scanning.
In inverse video ~canning, the neighborhood is inverted and the transformation to be made on each pixel of the digital image A is done according to the algorithm:

. .

.: ' :
.. ~. ~.

,,.. , .. ,,.",. ., ". ~ , :
- . ~ ,.. ..
, ,; .

7~'r3~3~

a~ij = Min[bij, Maxtaij, a*i,~+1, a i~ a i+1,~' i+1,j-1)] ~ (3bis) To do so, the processor 42 must receive the following inputs in direct video scanning:

-bij sur E6 (where b designates a pixel in part B of the memory containingimage B) a i~l,j-l on E5 a i-l,j on E4 a i-l,j+l on E3 a i,j-l on E2 a*ij on El The pr~sentation in inverse video scanning is deduced from the preceding by symmetry of the structuring element around aij.
The processor 42 comprises two input operators 66, each of which is comprised of a comparator followed by a multiplexer.
Th~ first operator 66, for example, receives inputs ~2 and E3 and provides in its output a digital ~ignal representative of the largest of the two values E2 and E3. The second operator 66 has the same composition but receives inputs E4 and E5. The outputs o~ the two operators are connected to two inputs of a second operator having the ~ame constitution ~s the first, thus providing on its output a digital signal which i~ representative of the maximum o~ E2,...,E5. Another operator 70, which is identical to the preceding, aomprises an input connected to the .

. . . : : . . ..

":~ :: ` ' ` ' . ... ,,. ~ . .. . .. ..
:, ~
,; . i:

~ 7~

output of the operator 68 and a sacond input which receives El. Consequently, the output F of the operator 70 represents the maximum of all values ~1 to Es. A last operator 72 receives the output of the operator 70 and the signal E6, representative of bij, regardless of the scanning direction. The output S of the latter comparator, constituted by Min F (F, E6) is recorded in ~he image memory by the write bus and is reinjected into the ~e~ories 44 and 34 to serve in the processing of the subsequent pixels.
Skeletonization ~ he skeletonization of a group of pixels represented by binary numbers of digital functions constitutes one of the most widely used transformations in image analysis. It allows the median axis to be determined of a group of binary coded pixel~ or the "peak lines" of a group of pixels which can be considered as representing a digital function. A description of skeletonization and the devices conventionally used today may be found in the work by Serra cited above, on pages 373 to 401 and ~5~ to 456~
Prior methods of skeletonization are all based on the same principle: using successive passes, contour points are removed fro~ each particle in the image for which the 6keleton is being sought, which corresponds to successive thinning operations on the particle. Neighborhood criteria allow the disappearance of the particle to be avoided, with said particle being comprised of a group of pixels, or a hole, or to avoid dividing the particle or hole. The ~ame i8 done for a set which can be . ~ ..
: :
. .. . .
- . .:.-: ' ;
.. ~

~.27(31'~5~

represented by a digital function, while being certain that thesame criterion is verified for all thresholds.
All known methods require a number o~ passes which increases wit~ the size of the largest particles to be skeletoni2ed in the image.
The process and device according to the invention, which will now be described, allow the operation to be simplified considerably: they allow the skeleton of a particle to be determined in a sequence which comprises:
- a rapid preparation of the image, - a skeletonization in three passes (effected, for example~
with the first being direct video scanning, the second inverse video scanning and the third direct video scanning).
Now, the description will be given, first of all, of the general skeletonization sequence, then, in a detailed manner, the case of the construction of the euclidian skeleton of a group of binary pixels.
General procedure The procedure can be regarded as comprising at least three stages (a) a relief without plateau is generated (b) the relief of the neighborhood of each pixel in the group to be skeletonized is possibly coded in acceptance witha predetermined coding algorithm, (c) the peak points are marked on the (possibly coded) relie~ and (d) on this same relief, the stream part of the peak points is generated using a rewrite process such as defined above .
For example, the general process will be described while first assuming that the pixels are distributed in a pattern which .. ..

:... . .
. .. .
. . ;::: .. .
. . .: .
- . : . .:

~L~7~

is no longer square as in the previous cases, but hexagonal. The square pattern process is done in a very similar manner. The passage from a distribution in a square mesh to a hexagonal mesh can be done by parallel transformation which produces ~he ~ollowing neighborhoods:
- on an even line:

ai-1,j i-1,j+1 i,j-1 aij aij+1 ai+1, j ai+1, j+1 - on an odd line:

ai-1,j-1 ai-1,j a~ aij ai, j+l a j+ 1 , j- 1 ai+1 , j and, for a presentation which does not depend on parity, the nei~hborhood will be designated by a b c d e g -This transformation can be done by using the device shown in Figure 8, which comprises channels operating in an alternating mannar.
The device shown in Figure 8 receives from the central memory 30, on input E, the value of each pixel and stores it until it is no longer utilized by any structuring element. It detects these values within the local memory at each clock interval so as to present the processor 42 (Figure 1) with the correct neighborhood (a, b, c, d ,e, f, g) of the central point and regardless of the parity of the line processed. Indeed, it is noted on the two neighborhoods of aij illustrated above that, when the line i is even, neighbors a and f (respectively b and g) have rank j (respectively ; ~ 1) while, for an odd line, they have rank j - 1 (respectively j). ~o operate such a shift every other line, the device comprises three identical assemblies 74-76, 82-84, 96-98.
For example, the construction of the assembly 74-76 will be given in detail. It receives from memory 30, the value ai+l ~2, when ai,; is the central point of the structuring element.
This input is applied simultaneously to the input of a register 74 and to one of the inputs of a multiplexer 76. The output of thQ register 74 constitutes the other input o~ the multiplexer.
~he multiplexer itself is controlled by a parity signal on its input 104. In an even line, the multiplexer presents on its output the input applied to E, or ai+~ 2, while, in an odd line, it takes the content of the reg~ster 74, or ai~ l The output of the multiplexer 76 feeds two cascade mounted registers 78 and 80, each delaying the value of the pixel which it receive~

~ ~ ;

., . , ,:.
.:
:

as input by one clock period. Thus, on an even line, the registers 78 and 80 will present in their oukput the values of tha pixels ai~ and ai+l,; and, on an odd line, the values of pixels ai+l,; and ai~l,; 1. It is noted that the coxrect values of points ~ and g, neighbors of central point d, are clearly present, in these outputs.
The assembly is to present, to the input of a random access memory 86, the value of pixel ai+l j-l~ regardless ~f the parity of the line. To do so, the assembly 82-84 operates in opposition with the assembly 74-76: when the multiplexer 76 selects the input of register 74, the multiplexer 84 selects the output of register 82. Thus, their effects cancel each other out.
The random access memory operates like a dalay register, introducing a delay of n-3 pixels.
The output of the random access memory 86, or ai j-2'~ is injected into a cascade of three registers 88, 90 and 92 allowing each a clocked time delay of the value of the pixei which it received as input. The outputs of these three registers constitute the points neighboring e = ai/i+l~ d s aij, c = ai,j-The output of register 92, or a~ l, is also connected to the input of a memory 94 which is identical to the memory 86.
The output o~ the random access memory 94, i.e., ai-1~;+2l~
constitutes the input of the last of the three register-multiplexer assemblies 96-98. The entire device 96-98-100-102 is identical to the device 74-76-78-80 and operates in a synchronous manner with the latter. The outputs of registers 100 and 102 thus constitute the last points in the neighborhood, .
, ".: ~""'' .

-~!, ; , ~ ~ 7 b and a, which have the respective values a~ ;, and ai~when the line being processed is odd.
This device is slightly more complicated than that which is normally utilized ~or the local storage of parallel hexagonal transformations. However, as presnted, it has the advantage of the ability to transform easily into a rewrite device, by a simple modification of connections, as shown in Figure 8A. In the device in Figure 8, pixels g, f, d, read respectively at the output of registers 78, 80 and 90, are reinjected into the subsequent registers 78, 80 and 92. On the contrary, in the rewrite device in Figure 8A, the transformed values g*, f* and d*
are injected into the input of registers 80, 82 and 92, with aid values having been calculated by the processor 42.
Henceforth, it can be noted that one can pass from the device shown in Figure 8 to the rewrite device using a simple modification of the ccnnections.
To correctly resolve edge of field problems, the useful image will be a sub-matrix Mn_2,n_2, beginning at point a22 so as to leave a complete frame around the image which th~ operator can figure as desired as a function of the transformation and the edge effects he wishes to produce.
After having thus described the passage from the ~quare frame to the hexagonal frame, the general sequence of the process for obtaining the skeleton will be described, before beginning a detailed account o~ the specific case of various binary euclidian skeletons.
The first step consists of executing a preparation of the image by aeneratina a relief.

:.:: . :
- .; ,.. ..,. ....~ , ., ~

- " .~' ;".:;,~" , ' ' ~ 7~

case of a binary image: First o~ all, using the process described abovs under ~he heading ~Erosion ~unction", the ERODE
function for the binary set X to be skeletonized is created conditionally for the potential binary set y (if one i~ working geodetically)O This ERODE function allows the relief to be coded in the neighborhood of the pixel a of the ~et X to be transformed.
In the case of the following neighborhood:

a4 a3 a5 a a2 a6 a7 This pertains solely to a local coding: the pixel a as well as all of its neighbor, having an altitude equal to that of a in the ERODE function, will be coded 1. Those whose altitude is above that of a are coded 2. Those whose altitude i~ below are coded O.
Case of a digital image: On the ERODE function of the digital i~age, each pixel belonging to the set X n yC has neighboring pixels lower than itself.
But this property is not true for a random function, which can present plateaus. To be able to construc~ the skeleton, first of all, a relie~ which is compatible with the relief of the unction representing the digltal pixel ~et must be generated on these plateaus.

,.,:
: :.
....
- ., ..................... . :~ :, .....
, .
, ~ ~ 7 ~3~3~

The simplest way to achieve this resulk consists of constructing the ~low graph of the relief. The peaks of this graph are comprised o~ pixels, and the arcs (in the sense oE a graph) from a pixel a indicate the neighbors of a towards which a drop of wat~r placed in a would flow. These arcs are assigned in the following manner:
- for each pixel, an arrow is created, going Erom this pixel towards each of its neighbors smaller than itself, - the flow graph is supplemented to take into account that tha pixels which have not been assigned an arrow during the first stage are those inside plateaus, this is done by repeating, until stability is reached, the operation of creating arrow ~rom a towards any neighboring pixel b for which the value of the Eunction is the same for a and b, . b is already the origin of an arrow, while a is not.
When the arrow generation operation is completed, the relief ~or the neighborhood of each pixel has been coded, as in the binary case. ~he central pixel and all of its neighbors which are not connected by an arc to the central pixel are coded 1.
Those of the neighboring components towards which an arrow exists stemming from the central pixel are coded 0.
~ hose of the neighboring componants from which an arrow departs towards the central pixel are coded 2.
once the coding of the relief is execuked for the neighborhood of each pixel, the skeletonization properly speaking will be executed in two stages on the relief generated in the image, first the marking of the peak points, then the marking oE

.. . .... . . . . . . . . ..
.,.... . -; ::
- .. - . ~ --- ........ .
,: :::, ., ,. :
,, ~ ~,; .. .. :, ,.
~ :, : ., . . :

~ 3~3~

the points upstream o~ the peak points in the ERODE function or the flow graph (the upstream point also belongs to the skeleton).
According to a modified embodiment, the relief is generated without plateaus during step (a) by the construction of an equivalent digital function on the ~low graph in at least one couple of two passes:
- (al) the following transformation is done by direct video scanning on each pixel d of the initial relief B:
B*(d) = Min [B (d), 1 + Min [C(a), Ctb), Ctc)]]

in which the arrangement of points al b, c, d is that given du~ing the presentation of the general procedure, on page 28, B is an auxiliary image initialized at the maximum objectal value available for the pixels, C(x) = Nax - 1 if A(x) > (d) C(x) = B(x) i~ A(x) = A(d) C(x) = -1 if A~x) < A(a) ~or x = a, b or c, with pixel x being considered as having an altitude higher than pixel y if:
A(x) ~ ~(y) or ~(x) = A(y) and, at the same time, B~x) > B(y).
MarXinq of peak points For this operation, a binary memory is used, initially containing l's, zeroing all of the pixels belonging to a peak line of the image are zeroed in a single pass through the image.
To do so, the points are coded in the following manner-.....
,. . .
-: ~ . , ~ ;: . . .

' :' `;"' :, ' ~.
; ; ;
~: .. .;., : . .

~2 f109~3~
(bl) pixel x and i~s naighbors having an altitude above x are coded 2, Pixels neighboring pixel x having an ltitude below x are coded 0, Pixels neighboring pixel x having an altitude equal to x take all possible combinations of value O and 2 so as to obtaln a family (Vi) or neighborhoods, During step c, a pixel x is considered as a peak point if there exists a neighborhood vj belonging to the family (vi) of x fo~ which one of the following conditions is fulfilled:
(i) all of the components neighboring the central pixel have the value of O and the zeroing of the central pixel would eliminate a particle comprised of 2, (ii) the zeroing of the central pixel creates a bridge between two particles consisting of 0, which had no mutual connection in the x neighborhood;
(iii) the zeroing of thP central pixel eliminates the only connection existing between two particles consisting of 2 which have no other connection in the x neighborhood.
This signifies that a pixel a will be considered as a peak point if it enters into one of the following categories in the case of a hexagonal frame:
(i) a has at least four neighbors equal to O in the coding of the reliaf of its neighborhood, (ii) a has three neighbors equal to 0~ but its neighborhood cannot be 6uperimposed~ directly or by rotation, over the configuration:

, .. ~ . . . . .. .. , ~ , . .
... ... . ..

, ,. .:. :
:::
.:
. . : .. ,., - :. . ..
~: , , ,: .~, ~ ., .
:.. , . , ;~ , , , . . .. . ... . .
. .. : :. - :,, :

7~'13~i~

a o O O

with a period (.) designating either a 'lone" or a "two", ~iii) a has two neighbors equal to 0, but its neighborhood cannot be superimposPd, directly or by rotation, over the con~iguration:

O O

(iv) a has one neighbor ~qual to 0, but it~
neighborhood cannot be superi~posed, directly or by rotation, over the configuration:
2 2 a 2 ~7C~3~
In the binary ~ucli.dian case, the con~iguration~ of the peak points are equivalent to the following z 2 x , y, z, t taken in x y t 2 any an~ular position x and y taken with any x Y 1 1 angular po~ition, in t 2 which 2 designates that the corresponding pixel has a value of 1 or O but not 2 y3 Y2 O x taken in any angular y4 x Y1 = 1 0 position which are shorter and, in certain ca5es, more advantageous.

~ ~ 7~

In the case of eight (pattern) and eight (background) connexity, all pixels which do not verify any o~ the configurations will be considered as peak points:

. O . O O O o O O O O O
2 . 2 0 . . O . O O . .
2 2 2 . 2 2 . 2 . O .

O . 2 0 0 . o O O O O .
. . 2 . . ~ . . . O . 2 2 2 2 2 2 2 2 2 2 . . 2 ~in which the pixels marked . have a value 1 or 2), or any of the configurations which are deduced therefrom by rotation or symmetry.
To the peak points above can be added the ends of the barbules. In the case, ~or example, of a square matrix, the configurations of peak points detected can be implemented with the ends of the barbules, i.e., the pixels which verify~ in any angular position, at least one of the configurations:

. 2 . 2 . O
O . O . . O
O O O O O O

~ he means to determine sections of the skeleton in square frame are directly derived from the above.

, , , , ........ . . .. ,.. . ,, ~ ~ ~ , , . . , .; . , ~ :, ~ : - :

~ ~'7~

When the matrix is square and the neighborhood is in 4 connexity 4 for the pattern and in 4 connexity for the background, the neighborhood of each pixel is coded during step (b) in the following manner:
The central pixel and its neighbors having the same altitude are coded l;
The neighbors having lower altitude are coded 2, The pixels having lower altitude are coded ~. During step (c) all pixels which do not verify any of the following configurations are detected as peak points:

. O . . O O O O O O O . O O O O O O
2 . 2 2 . . . . . O . 2 0 . . O . O
2 2 2 2 2 2 2 2 2 . 2 2 . 2 2 . 2 .

(where the . signs indicate that the value of the pixel is 1 or 2).
or any of the configurations which are deduced therefrom by rotation or symmetry.
In the case of eight connexity for the pattern and four for the background, all pixels which do not verify any of the following configurations are detected as peaX ~oints:

~ O . O O . O O . O O O ~ O O
2 . 2 . . 2 0 . 2 . . . O . .
. 2 . . 2 . . 2 . . 2 . O . 2 , , ., . :

.

. .
.:

~7~353~

[where the . sign indicates that the value of the pixel is indifferent).
or any of the configurations which ensue therefrom by rotation.
In all cases, for each of the pe~k pixels, the corresponding position in memory is zeroed.
Thus, a sketch of the skeleton is obtained, which will generally occur in several fra~ments. The entire upstream part of these fragments in the ERODE function or in the flow graph also belongs to the skeleton. This "upstream part" is defined in practica according to the same principles in all cases (euclidian binary, geodetic binary or digital). In a hexagonal frame, the twelve pixels closest to the pixel considered on which the determination of the relief is to be based are considered (with this pixel being a peak point of departure or a point which is "upstream" during a subsequent back generation).
Arrangement is as follows:
.
v4 V7 a v1 ~8 vg v11 v12 v1o For each o~ the vectors avi the slope is computed by dividing tha difference in relief between Vi and a by the distance a vi.

` ;.. ,, ' -- ---.... , :
,. .: . :
,:.,. ~ . , .

.
- .. . i .

As was seen earlier during the examination of the hexagonal matrix, the distance Vi has the following value:
1 For the immediate neighbors vl, v3, v5, v7, vg, Vll;
for the other neighbors v2, v4, v6, vs~ v10~ V12;
In order to have whole values in the 1/~ ratio, distances 4 and 7 will generally be adopted respectively.
The diffsrence in relief DR(vi a) is:
- read on the ERODE function for the binary sets, - deduced from the flow graph for the digital functions ~grey level pixels).
Any pixel Vi having an altitude above that o~ the pixel x and such that the slope of the vector xvi is greater than the slopes f Xvi+l and Xvi-l belongs to the ~upstream~ part of x.
The application of this rule in the binary euclidian case ensures that the skeleton obtained is connected. The same does not necessarily apply in the case of a more general relief, and it is necessary to complete the skeleton during a last pass:
if Vi is the upper part of the pixel x without belonging to the hexagon Hx having size 1 centered on x, then x and Vi have two common neighbor~ y and z belonging to Hx which has the following configuration:

Y z x O

If neither y nor z belong to the skeleton, then that of the two -- . . -- , . . .

- . . , .. .
' ~

5~
points y and z having the highest altitude (both if they are equal in altitude) also belong ~o the skeleton.
Thus, based on peak points giving a sketch o~ khe skeleton, the upper part can be constructed in three passes using a rewrite process which can implement the device shown in Figure 8, taking into account a neighborhood o~ twelve points.
Specific case of the generatina of the skeleton of a set of binary pixels, in the euclidian case tY set emPtY).
Figure 9A shows, as an example, a binary set which can be considered as typical, with the circles indicating the pixels having one of the levels (that corresponding to the pattern), with the points indicating the pixels having the other level (that corresponding to the background).
The local structure of the relief can then be represented by a four-state RELIEF function, obtained from the ERODE function (shown in Figure 9B):
RELIEF (a) = 0 if a~ xC
RELIEF (a) = 1 ~ [2 + ERODE(a), modulo 3] in the contrary case.
In the above formula [N, modulo 3] signifies the congruence o~ N modulo 3, where N is the whole number egual to ERODE (a)~
Thus, the representation in Figure 9C is obtained.
It is important to note that, to be put generally, the skeleton can also be detected on the ERODE function; on the flow graph; or on the RELIEF function. Of the three representations, the RELIEF function has the poorPst information, and this information is, however, sufficient to construct the skeleton in binary euclidian conditions. For the other cases in the ~iguxe, .... ~
~,,, ; ,,.
,, ::
-., :.: : ...
.: : :. .:. : . : ,.

~ ~74~5~

geodesic or digital, recours~ must be made to the ~low graph or the ERODE function.
The circuit for the detection of peak points o~ the skeleton can be as shown in Figure 10. This circuit comprises two correspondence or transcoding tables 110 and 111, each having eight inputs and six outputs. Each of these tables can be constituted by a 256 byte ROM.
Tables 110 and 111 are intended to recode the local relief around a central point a in the following manner:
- the central point and those of the neighboring points V
which have a value equal to the central point are coded l;
- the points having an altitude greater than the central pixel are coded 2, - the points having an altitude lower than the central pixel are coded O.
It is thus necessary to code each pixel on two bits, with the LSB being identified by index 2 and the MSB by index 1.
A third bit, marked with index 3, will indicate i~ the pixel considered belongs to the skelaton (if yes, bit 3 will have the value O) or does not belong (and then bit 3 will have a value 1) ~
The correspondence between the new values V and the old values v (bits vl and v2) i5 thus given by the following table (with a being the central point, v a neighbor of a):

. . ~ , - ...................... ~.~,.. .

;' ' ~ ~ 7~3X~

Initial values Final Value ~MSB) (LSB) Vl V2 a1 a2 V1 V2 Y
0 1 0 C) 0 1 0 0 0
3 1 1 1 0 1 0 O O

The final value o~ a is 1 in all cases.
The circuit in Figure 10 comprises a logical processing component 112 which receives the outputs of the two tables 10 and 111, representing the new value, coded on two bits, of each of the pixels naighboring the central point of tha relief. The component 112 can be constituted of a programmable logic array ~PAL 18L 4 port network, for example), each column of which pxovide~ a complemented input. In this programmable logic axray, twenty AND gates having forty inputs are available.
These forty inputs are the inputs (or the complemented inputs) of the programmable logic arxay. Each o~ these ~ND gates is capable o~ generating a structuring element. For example, the following neighborhood can be implemented on a neighborhood line:

a b 0 c d e = 1 ~ 2 g 2 2 :- , : ", . . : -, - .; - .

:, : . : : .
,. . .. .

1 ~ 7~ 9~

Which ~orresponds to the function:

1/~ 2 (~ b1 f~ b2 n e1 ~1 e2 n sl ~ q2 1~ f 11~ f2 ~ C1 n C2 In this formula, a, b, c, e, ~ and g designate the six points neighboring the central point, from left to right and top to bottom, with al and a2 being the MS8 and LSB bits, respectively.
Five other AND gates can be utilized to implement the structuring elements derived ~rom the preceding by successive 60 degree rotations. In the last step of the programmable logic network, one obtains the value sl = (Tl U... T6) present on output No. 17.
The six structuring elements R having the following form can also be made:

O O

ensuing from one another by 60 degree ro~ation.
The value S2 = Rl U R2 U R3 U R4 will be present in output No. 18 and S3 = R5 U R6 will be present on output NoO 19;

....
, . .
, .. . .
.
. , ,: : -~ . .
..
.~
- '' . ~ .,. ~

The same applies ~or the structuring elements P having the shape:

O O

O

The value S = (Pl U P2 U ... P6) will then be present on output No. 20.
Finally, the structuring elements may be assembled by a NAND
gate 114 operating receiving outputs Nos~ 17, 18, 19, 20. The resulting signal S can be recorded in central memoxy and constitutes the third bit o~ the central point, equal to 0 i~ the pixel a is a peak point, 1 in the contrary case.
Return in the upstream direction.
Upon completion of the preceding operation, there are only ~hree sections of the skeleton present. To connect these sections and form the complete skeleton, it is necessary to re~urn in the upward direction. This operation is done in three passes:
- the first in the direct video direction for directions -~6, -~/3, -~/2, - 2~3, - 5~/6 - the second in the inverse vldeo direction for directions ~6, ~/3, ~/2, - 2 ~/3, - 5 ~/6, - the last in the direct video direction for direction 0.

~6 . .

.. ., ~

::: ,. , :;, . ...... :
:, . ~
, . , .: - ,~:

~ ~7~3~

Only the first operation executed in direct video scanning will be described here, since the two others are deduced directly therefrom.
It suffices, for a neighborhood of size 1 and for each pixel a, to ~imultaneously have two relief bits Al and A2 as well as bit A3 indicating if a is a peak pixel or belongs to the upper part of a peak pixel.
To do o, bits 1 and 2 can be delayed in a parallel processing device such as that illustrated in Figure 8.
On the other hand, the MSB undergoes a triple rewrite process.

In the neighborhood a b c d e f g the return in the upstream direction:
- in direction ~ ~/6, can occur from c to g, - in direction - ~/2, can occur from b to g, - in direction - 5~/6, can occur from e to f, - in direction - ~/3, can occur from a to d, - in direction - 2~/3, can occur from b to d, and all information on the local relief is found inside the size 1 neighborhood.
The return in the upward direction in directlons _ ~6, -~/2, -5~/6 is done with the same rules. For example, the ascent in the direction - 5~/6 is done from e to f when:
- e is an element of the 6keleton, thus E3 has a ~alue of O, ~7 - ,.
:
':
.., ',~ ~

d e equals . . or f 1 o Then, bit F3 is given a value of O, otherwise, its value is retained. This can be expr~ssed by:

3 NOT t~3 U X U y) With X = E3 ~ E1 nE2~ G;

Y = E3~ E1~ E2n G1/

Possibly after a rotation, the ascent in directions -~/3, -2~/3 is done with the same rules. For example, the ascent from a to d occurs when:
- a is an element of the skeleton, thus bit A3 has a value o~ 0, a d e equals f ... . .... . .. ....... . ... ..

" :"~ ,"~ . ~ .. : . .
.. : :.: . :,.
., ." . . . . ..

~ ~ 7 ~3~

Then, bit D3 is assigned a value of O, otherwise its value is retained. This is expressed by the function NON ~ D3 U tA3~ A1 ~ A2~ F1~ F2~E1~ E2~ ]

The overall group of logical functions expre6sing the return in the upstream direction in different directions can be implemented ~or example, by using a unit of the type already illustratad in Figure lO, but associated with the devices shown in Figures 8 and 8A. Such an arrangement is shown diagxammatically in Figure ll.
It is possible (and advantageous in certain cases~ to return in the upstream direction only one direction at a time, and to repeat the return in the upstream direction for each of the four, six, eight or twelve directions of the matrix.
Finally, the skeleton can be completed in all points where a point of the skeleton and its upper point are not connected by a path of contiguous point~ of the skeleton by adding the contiguous points which constitute such a path having a minimum length.

, .,, ~ .. ... . .. . . ... . . . . ............. . .
. ,~ - .

.

-:

Claims (20)

The embodiments of the invention in which an exclusive property or privilege is claimed are defined as follows.
1. Process for the transformation of an image defined by elementary points of pixels each presenting a characteristic, such as a brightness, defined by a digital value, with the pixels being distributed according to a matrix and their relations and distances established by a predetermined graph of the neighborhood, a process according to which all or part of the image is explored according to a predetermined method of exploration, and the value of each pixel is modified as a function of the values of a set of associated points taking on their values in at least the image and being located within a slide window associated with the pixel to be transformed, identical for all pixels and constituting a structuring element, characterized in that the transformed version of each pixel is immediately substituted for the preceding value in an image memory and in that, after symmetry or rotation of the structuring element, the same transformation is repeated, utilizing a scan in the inverse direction as the previous scan, which is then potentially repeated in the direct direction with the initial structure element.
2. Process according to claim 1, characterized in that the transformed versions or the pixels are stored temporarily in a local memory so that they can be used to execute the transformation of the neighborhood on at least one subsequent point of the scan.
3. Process for skeletonization of an image made up of a matrix of pixels, wherein each of the pixels constitutes a central pixel in a neighborhood consisting of a predetermined plurality of pixels adjacent to the central pixel, each of the pixels in said matrix presenting a characteristic feature, such as a brightness, defined by a digital value, said method comprising the steps of:
(a) transforming said image by eliminating its plateaus to generate a relief without plateaus;
(b) coding said relief without plateau in the neighborhood of each of said pixels according to a predetermined coding algorithm to provide a coded relief represented by coded values;
(c) marking peak points on said coded relief, said peak points belonging to a skeleton of shapes in said image; and (d) starting from said peak points, generating upstream parts of said skeleton by a re-write transformation including: (d1) a first scan of the image in a direct direction, during which a value is selected for each pixel in the image which is responsive to values of a set of pixels within a structuring element associated with the pixel whose value is to be selected and identical for all pixels;
the selected value of each pixel is immediately substituted for the coded value in an image memory, whereby the pixel values in said structuring element include coded values and already selected values; and (d2), after symmetry or rotation of the structuring element, repeating step (d1) using a reversed direction scan, at least once.
4. Process according to claim 3, wherein said digital value of each pixel is binary and, during step (a), the plateaus are eliminated by generating an ERODE
function of the image.
5. process according to claim 4, wherein said digital value is binary and the relief is coded as a RELIEF function having any one of four values defined as:

RELIEF(x) = 0 if ERODE(x) = 0 RELIEF(x) = 1 [ERODE(x) + 2 modulo 3] if not.
6. Process according to claim 3, wherein, the digital value of each pixel being considered as an altitude of that pixel, the plateaus are eliminated during step (a) by construction of a flow graph in at least two passes, as follows:
(a1) during a first pass, generating arrows each directed from a pixel x0 towards a pixel x1 in the neighborhood of pixel x0 when x0 has an altitude higher than the altitude of x1;
(a2) during a second pass, generating additional arrows from each pixel x0 toward a pixel x1 in the neighborhood which has the same altitude as x0 when an arrow has already been generated starting from x1 and there is no arrow starting from x0;
(a3) repeating subsequent passes until arrows are no longer created.
7. Process according to claim 3, wherein said plateaus are eliminated during step (a) by constructing a digital function having a specific value for each pixel from 0 to a predetermined maximum value of the digital values, said digital function being equivalent to a flow graph and being constructed in at least two successive passes:
(a1) carrying out a direct video scanning of the matrix and carrying out the following transformation on each pixel d having a neighborhood:

B*(d) = Min B(d), 1+Min [C(a), C(b) C(c)]
wherein:
B is an auxiliary image initialized at said maximum digital value, and C(x) = Max - 1 if A(x) > A(d), C(x) = B(x) if A(x) = A(d), C(x) = 1 if A(x) < A(d) for x - a, b or c with pixel x being considered as having an altitude higher than a pixel y if:

A(x) > A(y) or A(x) = A(y) and, at the same time, B(x) > B(y).
8. Process according to claim 3, wherein, the digital value of each pixel being considered as an altitude of the respective pixel:
each pixel x of the matrix is coded as follows during step (b):
- pixel x and the pixels in the neighborhood thereof having an altitude above pixel x are coded 2, - pixels in the neighborhood of pixel x having an altitude below pixel x are coded 0, - pixels in the neighborhood pixel x having an altitude equal to pixel x are given all possible combinations of values 0 and 2, - whereby a family (vi) of neighbors is obtained, for each pixel, - and during step (c), a pixel x is considered as a peak point, if it has a neighborhood belonging to the family (vi) and for which one of the following three conditions is fulfilled:
- all pixels in the neighborhood of pixel x are equal to zero and zeroing x would eliminate a particle consisting of 2s, - zeroing x would create a bridge between two particles consisting of 0s which had no mutual connection between themselves in the neighborhood of x, - zeroing x would eliminate the only connection existing between two particles consisting of 2 which have no other connection in the neighborhood of pixel x.
9. Process according to claim 3, wherein, with the matrix being square and the image comprising particles which can present barbules whose ends are not part of the peak points, during step (c) in addition to the peak points, the pixels are detected having a number of neighbors whose altitude is lower than their own, greater than a predetermined number, so as to retain the pixels constituting the end of the barbules.
10. Process according to claim 3, wherein one subset only of all possible sets of peak points is retained during step (c) by applying an additional predetermined selection criterion.
11. Process according to claim 8, wherein, with the matrix being hexagonal, the neighborhood of each pixel is coded during step (b) in the following manner:
- the pixel x and its respective neighbors having the same altitude are coded 1, - the respective neighbors having a higher altitude are coded 2, - the pixels having lower altitude are coded 0 and in that during step (c) all pixels which do not verify any of the following configurations are detected as peak points:
(where the pixels represented by . have the value of 0, 1 or 2) or any of the configurations which are deduced therefrom by rotation.
12. Process according to claim 8, with the matrix being hexagonal, and with binary euolidian, pixels whose neighborhood is as follows are detected as peak points, with a close rotation:

(where ? indicates that the pixel in question has a value of 0 or 1 but not 2) - and four points are also detected as peak points at once when they present the following configuration:
13. Process according to claim 3, for transformation of an image made up of a square matrix of pixels, each pixel having a neighborhood which is defined with a four connexity when relating to a shape and a four connexity for background, wherein:

the neighborhood of each pixel is coded as follows during step (b):
- each pixel at the center of a neighborhood of four neighboring pixels is coded 1 when said neighborhing pixels have the same digital value as the central pixel to be coded, - pixels having higher values than the central pixel in the neighborhood are coded 2; and - pixels having lower values than the central pixel in the neighborhood are coded 0;
- and all pixels which do not verify any of the following configurations:
(where the . signs indicate that the value of the pixel is indifferent) nor any of the configurations deduced therefrom by rotation or symmetry, are detected as peak points during step (c).
14. Process according to claim 8, wherein, the matrix being square and each pixel having a neighborhood which is defined with 8 connexity when relating to a shape and 4 connexity for background, all of the pixels which do not verify any of the following configurations are detected as peak points:

(where the . signs indicate that the value of the pixel is indifferent) or any of the configurations deduced therefrom by rotation or symmetry.
15. Process according to claim 8, wherein, with the matrix being square, and each pixel having a neighborhood with 8 connexity shape and background, all pixels which do not verify any of the following configurations are detected as peak points:

(where the . signs indicate that the value of the pixel is indifferent) or any of the configurations deduced therefrom by rotation or symmetry.
16. Process according to claim 13, including the additional step of - (c1) marking, as additional peak points, the pixels which verify at least one of the configurations:

(where the . signs indicate that the value of the pixel is indifferent) or any of the configurations deduced therefrom by rotation, such additional pixel representing ends of barbules.
17. Process according to claim 8, wherein pixels x1 are marked as being upstream from previously marked peak pixel x if - the altitude of x1 is greater than that of x, and - if, in a predetermined structuring element surrounding x and including a plurality of pixels, vector x0x1 has a slope greater than slopes of two vectors having x as an origin, having as an end pixels of the structural element and close to x1.
18. Process according to claim 17 for generating a geodetic skeleton, wherein the pixels upstream of the peak pixel are determined along a first direction of the matrix at a time, successively for each direction of the matrix.
19. Process according to claim 3, further including the step of completing the skeleton in all areas where a first pixel of the skeleton and a second pixel of the skeleton upstream of the first pixel are not connected by a path by inserting into said skeleton mutually adjacent points of the matrix which constitute a path of minimum length between the first and second pixels.
20. Skeletonization device for an image comprised of binary pixels placed according to a square frame, comprising rewrite means to pass to a hexagonal grid, comprising three identical assemblies placed in cascade, a register for a position and a multiplexer commanded by a parity signal, with the second assembly operating in opposition with the first and the third and the assemblies being separated by random access memories operating in delay registers providing a delay corresponding to the number of points of each line, minus three, means to substitute the recalculated values of the pixels for the original pixel values, for rewrite in memory, and said rewrite processor which includes digital means intended to seek the minimum among the values of the rewritten pixels in the neighborhood of current pixel by and to code this minimum with a transformed value depending on its primitive value, means to compare said coded minimum to the current pixel, and a multiplexer whose output provides said minimum value or the value of the current pixel according to the result of the comparison between the current pixel, said minimum ad their maximum representable value.
CA000515504A 1985-08-07 1986-08-07 Process and device for sequential image transformation Expired CA1270952A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR8512120A FR2586120B1 (en) 1985-08-07 1985-08-07 METHOD AND DEVICE FOR SEQUENTIAL IMAGE TRANSFORMATION
FR8512120 1985-08-07

Publications (1)

Publication Number Publication Date
CA1270952A true CA1270952A (en) 1990-06-26

Family

ID=9322085

Family Applications (1)

Application Number Title Priority Date Filing Date
CA000515504A Expired CA1270952A (en) 1985-08-07 1986-08-07 Process and device for sequential image transformation

Country Status (6)

Country Link
US (1) US4809348A (en)
EP (1) EP0211770B1 (en)
JP (1) JPS6235984A (en)
CA (1) CA1270952A (en)
DE (1) DE3689926T2 (en)
FR (1) FR2586120B1 (en)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4827533A (en) * 1986-03-17 1989-05-02 Fuji Photo Film Co., Ltd. Method of smoothing image signals
JPS63155372A (en) * 1986-12-19 1988-06-28 Fujitsu Ltd Filtering circuit
US4908751A (en) * 1987-10-15 1990-03-13 Smith Harry F Parallel data processor
US4910693A (en) * 1987-12-29 1990-03-20 Hughes Aircraft Company Method and apparatus for sampling lattice pattern generation and processing
US4969203A (en) * 1988-01-25 1990-11-06 North American Philips Corporation Multiplicative sieve signal processing
US4918739A (en) * 1988-08-12 1990-04-17 Maraven, S.A. Process and system for digital analysis of images applied to stratigraphic data
US5129014A (en) * 1989-12-08 1992-07-07 Xerox Corporation Image registration
US5402504A (en) * 1989-12-08 1995-03-28 Xerox Corporation Segmentation of text styles
US5390291A (en) * 1990-10-05 1995-02-14 Atlantic Richfield Company Method for interpolating between two regions of a display
US5148500A (en) * 1991-01-24 1992-09-15 Aoi Systems, Inc. Morphological processing system
FR2674349B1 (en) * 1991-03-20 1993-07-02 Armines PROCESS FOR IMAGE PROCESSING BY HIERARCHIZED HOLDING FILES.
FI90150C (en) * 1991-05-14 1993-12-27 Valtion Teknillinen FILTER
AU1996292A (en) * 1991-05-17 1992-12-30 Analytic Sciences Corporation, The Continuous-tone image compression
FR2677835B1 (en) * 1991-06-14 1997-09-05 Sagem METHOD FOR LOCATING OBJECTS ON THE IMAGE OF A SCENE CONTAINING THEM.
US5574803A (en) * 1991-08-02 1996-11-12 Eastman Kodak Company Character thinning using emergent behavior of populations of competitive locally independent processes
US5674316A (en) * 1994-06-30 1997-10-07 Kao Corporation Hydraulic composition
DE19609859C1 (en) * 1996-03-13 1997-07-24 Siemens Ag Method for forming an image transformation matrix for an arbitrarily shaped image segment of a digital image, by a computer
US7016539B1 (en) 1998-07-13 2006-03-21 Cognex Corporation Method for fast, robust, multi-dimensional pattern recognition
US6404934B1 (en) * 2000-10-20 2002-06-11 Shih-Jong J. Lee High speed image processing apparatus using a cascade of elongated filters programmed in a computer
US20040260540A1 (en) * 2003-06-20 2004-12-23 Tong Zhang System and method for spectrogram analysis of an audio signal
US7190834B2 (en) 2003-07-22 2007-03-13 Cognex Technology And Investment Corporation Methods for finding and characterizing a deformed pattern in an image
US8081820B2 (en) 2003-07-22 2011-12-20 Cognex Technology And Investment Corporation Method for partitioning a pattern into optimized sub-patterns
FR2860292B1 (en) * 2003-09-26 2005-12-02 Thales Sa DISTANCE ESTIMATING METHOD FOR A MOBILE SUBJECT TO DYNAMIC TRAVEL CONSTRAINTS
US7580556B2 (en) * 2004-01-26 2009-08-25 Drvision Technologies Llc Image region partitioning using pre-labeled regions
US8437502B1 (en) 2004-09-25 2013-05-07 Cognex Technology And Investment Corporation General pose refinement and tracking tool
US8103085B1 (en) 2007-09-25 2012-01-24 Cognex Corporation System and method for detecting flaws in objects using machine vision
KR101191532B1 (en) * 2009-12-22 2012-10-15 삼성전자주식회사 Data display method and apparatus
US9679224B2 (en) 2013-06-28 2017-06-13 Cognex Corporation Semi-supervised method for training multiple pattern recognition and registration tool models

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4060713A (en) * 1971-06-23 1977-11-29 The Perkin-Elmer Corporation Analysis of images
US4290049A (en) * 1979-09-10 1981-09-15 Environmental Research Institute Of Michigan Dynamic data correction generator for an image analyzer system
DE3177021D1 (en) * 1981-01-05 1989-05-03 Image Processing Tech Process and device for the binarization of a pattern
JPS5952359A (en) * 1982-09-02 1984-03-26 Hitachi Medical Corp Automatic corrector for picture distortion during inter-picture operation
DE3347645C1 (en) * 1983-12-30 1985-10-10 Dr.-Ing. Ludwig Pietzsch Gmbh & Co, 7505 Ettlingen Method and device for opto-electronic testing of a surface pattern on an object
US4641356A (en) * 1984-08-24 1987-02-03 Machine Vision International Corporation Apparatus and method for implementing dilation and erosion transformations in grayscale image processing

Also Published As

Publication number Publication date
DE3689926T2 (en) 1994-10-13
EP0211770B1 (en) 1994-06-22
JPS6235984A (en) 1987-02-16
FR2586120B1 (en) 1987-12-04
FR2586120A1 (en) 1987-02-13
US4809348A (en) 1989-02-28
EP0211770A1 (en) 1987-02-25
DE3689926D1 (en) 1994-07-28

Similar Documents

Publication Publication Date Title
CA1270952A (en) Process and device for sequential image transformation
US4603348A (en) Method for composing addresses of a memory
US5809182A (en) Digital resampling integrated circuit for fast image resizing applications
US4694407A (en) Fractal generation, as for video graphic displays
EP0152741B1 (en) High-speed image generation of complex solid objects using octree encoding
US5943058A (en) Texture mapping circuit for performing data interpolations
US4553260A (en) Means and method of processing optical image edge data
US5327509A (en) Compressed image system for texture patterns
EP0506429A2 (en) Video image mapping system
EP0132134A2 (en) Digital image processing
US6067088A (en) Image processing method and apparatus thereof
US5930407A (en) System and method for efficiently generating cubic coefficients in a computer graphics system
US4783753A (en) System for reducing speckle noise
US5125048A (en) Obtaining access to a two-dimensional portion of a digital picture signal
US4298858A (en) Method and apparatus for augmenting binary patterns
US5491558A (en) Method and associated apparatus for writing a halftone dot having a variable density edge profile
US4945497A (en) Method and apparatus for translating rectilinear information into scan line information for display by a computer system
US6441826B1 (en) Method and apparatus for generating textures for display
US5446558A (en) Apparatus and associated method for representing elliptical halftone dots
Liu et al. Fast color image quantization with error diffusion and morphological operations
KR900002631B1 (en) Image data processing method and apparatus
JPS6219970A (en) Mask processing system
JPH05284346A (en) Color conversion device
Sureshchandran et al. Architectural design of an encoder for a visually motivated real-time image compression scheme
JP2515534B2 (en) Signal filtering device

Legal Events

Date Code Title Description
MKLA Lapsed