Bonjour tout le monde

J'aimerais bien avoir votre aide, je veux transformer ce code écrit dans matlab en un code VHDL et C pour l'injecter dans STM32F4 comment doit je procéder ?


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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
foregroundDetector = vision.ForegroundDetector('NumGaussians', 3, ...
    'NumTrainingFrames', 50);
O = zeros(360,640);
a = 0;
 
videoReader = vision.VideoFileReader('visiontraffic.avi');
for i = 1:150
    frame = step(videoReader); % read the next video frame
    foreground = step(foregroundDetector, frame);
end
 
figure; imshow(frame); title('Video Frame');
figure; imshow(foreground); title('Foreground');
 
se = strel('square', 3);
 
filteredForeground = imopen(foreground, se);
 
figure; imshow(filteredForeground); title('Clean Foreground');
 
blobAnalysis = vision.BlobAnalysis('BoundingBoxOutputPort', true, ...
    'AreaOutputPort', false, 'CentroidOutputPort', false, ...
    'MinimumBlobArea', 150);
 
bbox = step(blobAnalysis, filteredForeground);
 
result = insertShape(frame, 'Rectangle', bbox, 'Color', 'green');
 
numCars = size(bbox, 1);
 
result = insertText(result, [10 10], numCars, 'BoxOpacity', 1, ...
    'FontSize', 14);
 
figure; imshow(result); title('Detected Cars');
 
videoPlayer = vision.VideoPlayer('Name', 'Detected Cars');
 
videoPlayer.Position(3:4) = [650,400];  % window size: [width, height]
se = strel('square', 3); % morphological filter for noise removal
 
 
while ~isDone(videoReader)
I = filteredForeground;
    frame = step(videoReader); % read the next video frame
 
    % Detect the foreground in the current video frame
    foreground = step(foregroundDetector, frame);
 
    % Use morphological opening to remove noise in the foreground
    filteredForeground = imopen(foreground, se);
 
    % Detect the connected components with the specified minimum area, and
    % compute their bounding boxes
    bbox = step(blobAnalysis, filteredForeground);
 
    % Draw bounding boxes around the detected cars
    result = insertShape(frame, 'Rectangle', bbox, 'Color', 'green');
 
    % Display the number of cars found in the video frame
    numCars = size(bbox, 1);
    if ((( I - filteredForeground ) == O) & (numCars ~= 0) ) 
        a = a+1;
    else 
        a = 0;
    end
    if a > 3000 
        result = insertShape(frame, 'Rectangle', bbox, 'Color', 'red');
 
     result = insertText(result, [10 10], numCars, 'BoxOpacity', 1, ...
        'FontSize', 14);
 
    step(videoPlayer, result);  % display the results
    end
 
    result = insertText(result, [10 10], numCars, 'BoxOpacity', 1, ...
        'FontSize', 14);
 
    step(videoPlayer, result);  % display the results
end
 
release(videoReader); % close the video file