bonjour à tous,

j'ai repris l'exemple fournit par opencv sur le laplacien. J'ai décidé de mettre en commentaire la méthode du laplacien et de mettre mon propre code.
Pouvez m'aider a comprendre ce qui ne va pas et si mon algorithme est bon car ca ne marche pas comme la méthode cv::Laplacian

voici mon code :
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
#include <opencv2/opencv.hpp>
#include <iostream>
 
using namespace cv;
 
int main(void)
{
 
  Mat m1, m2, m3, m4;
  Mat agx, agy;
 
  cv::VideoCapture cam(0);
 
 
  do
  {
    cv::Mat img;
    cam >> img;
 
    cv::cvtColor(img, m1, cv::COLOR_BGR2GRAY);
 
    cv::pyrDown(m1,m1);
 
    imshow("video", m1);
 
    cv::blur(m1, m2, cv::Size(3,3));
    imshow("blur", m2);
 
    Mat laplacien;
 
    //cv::Laplacian(m2,laplacien, CV_32F, 3);
 
     Mat m2dx, m2dy;
    cv::Sobel(m2, m2dx, CV_32F, 1, 0);
    cv::Sobel(m2, m2dy, CV_32F, 0, 1);
    cv::magnitude(m2dx, m2dy, laplacien);
 
    cv::Sobel(laplacien, m2dx, CV_32F, 1, 0);
    cv::Sobel(laplacien, m2dy, CV_32F, 0, 1);
    cv::magnitude(m2dx, m2dy, laplacien);
 
    //m3 = m1 - 0.3 * laplacien
 
    m2.convertTo(agx, CV_32F);
    agy = agx - 0.3* laplacien;
 
 
    agy.convertTo(agy, CV_8UC3);
    imshow("plus net", agy);
 
  } while(((char) waitKey(20)) == -1);
 
  return 0;
}
Merci d'avance pour votre aide