Advertisement
Guest User

line.h

a guest
Jan 22nd, 2020
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.19 KB | None | 0 0
  1. #pragma once
  2. #include "opencv2/imgproc.hpp"
  3. #include "opencv2/highgui.hpp"
  4. #include "opencv2/videoio.hpp"
  5. #include "opencv2/core/core.hpp"
  6. #include <iostream>
  7. using namespace cv;
  8. using namespace std;
  9. namespace line2 {
  10.     Mat TransformImage(Mat image, int View, Scalar lower, Scalar upper, bool debug) { //it's work
  11.         Mat transform_image;
  12.         //int wigth = input_img.cols; int height = input_img.rows;
  13.         //Mat image(input_img, Rect(140, View, wigth - 140, height - View));
  14.         cvtColor(image, transform_image, COLOR_HSV2BGR);
  15.         GaussianBlur(transform_image, transform_image, Size(9, 9), 0);
  16.         inRange(transform_image, lower, upper, transform_image);
  17.  
  18.         if (debug)
  19.         {
  20.             imshow("Transform_Image", transform_image);
  21.         }
  22.         return transform_image;
  23.     }
  24.  
  25.     int FindLine(Mat image, Mat gray) {
  26.         int x;
  27.         int sum = 0;
  28.         int k = 0;
  29.         int wigth = gray.cols; int height = gray.rows;
  30.         int mid = wigth / 2;
  31.         for (int i = mid - 150; i < mid + 150; ++i) {
  32.             if (gray.at<uchar>(i, height-50) == 255) {
  33.                 sum += i; ++k;
  34.             }
  35.         }
  36.         if (k != 0) {
  37.             x = sum / k;
  38.         }
  39.         else
  40.             x = 0;
  41.  
  42.         circle(image, Point(x, height - 50), 10, Scalar(0, 0, 255), -1);
  43.         imshow("DEBUG", image);
  44.         return x;
  45.     }
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement