OpenCV繪製多邊形和區域填充
阿新 • • 發佈:2018-11-02
OpenCV繪製多邊形和區域填充
繪製多邊形和區域填充主要用到了2個函式:polylines()和fillPoly()函式。
程式碼如下:
#include<opencv2/opencv.hpp> #include<vector> #include <iostream> #include "opencvLibs.h" int main() { cv::Mat src(768, 1024,CV_8UC3); src.setTo(0); std::vector<cv::Point > contour; contour.reserve(6); contour.push_back(cv::Point(389,253)); contour.push_back(cv::Point(0, 529)); contour.push_back(cv::Point(0, 768)); contour.push_back(cv::Point(1024, 768)); contour.push_back(cv::Point(1024, 643)); contour.push_back(cv::Point(671, 263)); std::vector<std::vector<cv::Point >> contours; contours.push_back(contour); //填充區域之前,首先採用polylines()函式,可以使填充的區域邊緣更光滑 cv::polylines(src, contours, true, cv::Scalar(255, 255, 255), 2, cv::LINE_AA);//第2個引數可以採用contour或者contours,均可 cv::fillPoly(src, contours, cv::Scalar(255, 255, 255));//fillPoly函式的第二個引數是二維陣列!! cv::imshow("原圖", src); cv::waitKey(0); return 0; }