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;
} |
Partager