Advertisement
Guest User

Untitled

a guest
Jan 17th, 2018
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.96 KB | None | 0 0
  1. #include <opencv2\opencv.hpp>
  2. #include <stdio.h>
  3. #include <vector>
  4.  
  5. using namespace std;
  6. using namespace cv;
  7.  
  8. int main() {
  9. //Mat stopImg = imread("korona.jpg");
  10. Mat stopImg = imread("zad_2.jpg");
  11. Mat workImg;
  12. Mat filtered;
  13. Mat filteredLowRed;
  14. Mat filteredHighRed;
  15. Mat dilated;
  16. Mat dilateKernel = getStructuringElement(MORPH_DILATE, Size(35, 35));
  17. Mat erodeKernel = getStructuringElement(MORPH_DILATE, Size(35, 35)); // 35 - stop, 9 - skittles
  18. Mat smallErodeKernel = getStructuringElement(MORPH_ERODE, Size(5, 5)); // 5 - korona, 3 - skittles
  19. cvtColor(stopImg, workImg, CV_BGR2HSV);
  20. Mat finalImage = stopImg.clone();
  21.  
  22. vector<vector<Point>> contours;
  23. vector<Vec4i> hierarchy;
  24.  
  25. namedWindow("STOP", WINDOW_AUTOSIZE);
  26. imshow("STOP", stopImg);
  27. waitKey(0);
  28.  
  29. inRange(workImg, Scalar(150, 200, 10), Scalar(179, 255, 255), filteredHighRed);
  30. inRange(workImg, Scalar(0, 200, 10), Scalar(20, 255, 255), filteredLowRed);
  31. addWeighted(filteredHighRed, 1.0, filteredLowRed, 1.0, 0.0, filtered);
  32. //inRange(workImg, Scalar(44, 60, 0), Scalar(99, 255, 255), filtered); // Korona
  33. //inRange(workImg, Scalar(37, 134, 179), Scalar(64, 220, 225), filtered); // skittles
  34. imshow("STOP", filtered);
  35. waitKey(0);
  36.  
  37. // skittles i stop - dla skittlesow bez ostatniego erode
  38.  
  39. erode(filtered, dilated, smallErodeKernel);
  40. dilate(dilated, dilated, smallErodeKernel);
  41. dilate(dilated, dilated, dilateKernel);
  42. erode(dilated, dilated, erodeKernel); // nie dla skittlesow
  43.  
  44. // korona
  45. /*dilate(filtered, dilated, dilateKernel);
  46. erode(dilated, dilated, erodeKernel);*/
  47. GaussianBlur(dilated, dilated, Size(9, 9), 2, 2);
  48.  
  49. imshow("STOP", dilated);
  50. waitKey(0);
  51.  
  52. findContours(dilated, contours, hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE);
  53. for (int i = 0; i< contours.size(); i++)
  54. {
  55. Scalar color = Scalar(0, 0, 255);
  56. drawContours(finalImage, contours, i, color, 2, 8, hierarchy, 0, Point());
  57. }
  58.  
  59. imshow("STOP", finalImage);
  60. waitKey(0);
  61.  
  62. return 0;
  63. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement