Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <opencv2\opencv.hpp>
- #include <stdio.h>
- #include <vector>
- using namespace std;
- using namespace cv;
- int main() {
- //Mat stopImg = imread("korona.jpg");
- Mat stopImg = imread("zad_2.jpg");
- Mat workImg;
- Mat filtered;
- Mat filteredLowRed;
- Mat filteredHighRed;
- Mat dilated;
- Mat dilateKernel = getStructuringElement(MORPH_DILATE, Size(35, 35));
- Mat erodeKernel = getStructuringElement(MORPH_DILATE, Size(35, 35)); // 35 - stop, 9 - skittles
- Mat smallErodeKernel = getStructuringElement(MORPH_ERODE, Size(5, 5)); // 5 - korona, 3 - skittles
- cvtColor(stopImg, workImg, CV_BGR2HSV);
- Mat finalImage = stopImg.clone();
- vector<vector<Point>> contours;
- vector<Vec4i> hierarchy;
- namedWindow("STOP", WINDOW_AUTOSIZE);
- imshow("STOP", stopImg);
- waitKey(0);
- inRange(workImg, Scalar(150, 200, 10), Scalar(179, 255, 255), filteredHighRed);
- inRange(workImg, Scalar(0, 200, 10), Scalar(20, 255, 255), filteredLowRed);
- addWeighted(filteredHighRed, 1.0, filteredLowRed, 1.0, 0.0, filtered);
- //inRange(workImg, Scalar(44, 60, 0), Scalar(99, 255, 255), filtered); // Korona
- //inRange(workImg, Scalar(37, 134, 179), Scalar(64, 220, 225), filtered); // skittles
- imshow("STOP", filtered);
- waitKey(0);
- // skittles i stop - dla skittlesow bez ostatniego erode
- erode(filtered, dilated, smallErodeKernel);
- dilate(dilated, dilated, smallErodeKernel);
- dilate(dilated, dilated, dilateKernel);
- erode(dilated, dilated, erodeKernel); // nie dla skittlesow
- // korona
- /*dilate(filtered, dilated, dilateKernel);
- erode(dilated, dilated, erodeKernel);*/
- GaussianBlur(dilated, dilated, Size(9, 9), 2, 2);
- imshow("STOP", dilated);
- waitKey(0);
- findContours(dilated, contours, hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE);
- for (int i = 0; i< contours.size(); i++)
- {
- Scalar color = Scalar(0, 0, 255);
- drawContours(finalImage, contours, i, color, 2, 8, hierarchy, 0, Point());
- }
- imshow("STOP", finalImage);
- waitKey(0);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement