1. 程式人生 > >opencv繪製多邊形

opencv繪製多邊形

opencv2.4.4

今天用cvFilllPoly()進行影象的繪製,其中遇到一些引數的問題,個人理解如下:

CVAPI(void)  cvFillPoly( CvArr* img, CvPoint** pts, const int* npts,
                         int contours, CvScalar color,
                         int line_type CV_DEFAULT(8), int shift CV_DEFAULT(0) );

img:影象

pst:折線的頂點指標陣列,即:每個影象陣列首個座標的地址

npts:多邊形頂點個數陣列,2-2個影象,4-第一個影象有4個頂點,3-第二個影象有3個頂點

contours:折線的線段數量,如第三個引數說明所示,我想畫兩個多邊形,那這個引數就是2,如果想畫4個多邊形,這個引數就是4

color:多邊形中的填充色

line_type :組成多邊形線段型別

shift:頂點座標的小數點位數

個人覺得cvFillPoly的難點主要在於雙指標和陣列處,寫了一個程式

方法三:

//畫多邊形
#include "cv.h"
#include "highgui.h"
#include "cxcore.h"
#include "stdio.h"


int main(void)
{
IplImage* image;
CvSize imagesize = cvSize(640,640);
CvPoint spoint1[3] = {{100,150},{430,240},{352,466}};
CvPoint spoint2[4] = {{440,300},{560,450},{318,600},{100,419}};
CvPoint* pts1[1] = {&spoint1[0]};
CvPoint* pts2[1] = {&spoint2[0]};
int npts1[1] = {3};
int npts2[1] = {4};


image = cvCreateImage(imagesize, IPL_DEPTH_8U, 3);
cvFillPoly(image, pts1, npts1, 1, CV_RGB(255,0,0),8,0);
cvFillPoly(image, pts2, npts2, 1, CV_RGB(0,0,255),8,0);


cvShowImage("image", image);
cvWaitKey(0);
}

方法二:

//畫多邊形
#include "cv.h"
#include "highgui.h"
#include "cxcore.h"
#include "stdio.h"


int main(void)
{
IplImage* image;
CvSize imagesize = cvSize(640,640);
CvPoint spoint1[3] = {{100,150},{430,240},{352,466}};
CvPoint spoint2[4] = {{440,300},{560,450},{318,600},{100,419}};
CvPoint* pts1[2] = {&spoint1[0],&spoint2[0]};
int npts1[2] = {3,4};


image = cvCreateImage(imagesize, IPL_DEPTH_8U, 3);
cvFillPoly(image, pts1, npts1, 2, CV_RGB(255,0,0),8,0);


cvShowImage("image", image);
cvWaitKey(0);
}

方法三:

//畫多邊形
/*#include "cv.h"
#include "highgui.h"
#include "cxcore.h"
#include "stdio.h"


int main(void)
{
IplImage* image;
CvSize imagesize = cvSize(640,640);
CvPoint spoint1[3] = {{100,150},{430,240},{352,466}};
CvPoint spoint2[4] = {{440,300},{560,450},{318,600},{100,419}};
CvPoint* pts1[1] = {&spoint1[0]};
CvPoint* pts2[1] = {&spoint2[0]};
int npts1[1] = {3};
int npts2[1] = {4};


image = cvCreateImage(imagesize, IPL_DEPTH_8U, 3);
cvFillPoly(image, pts1, npts1, 1, CV_RGB(255,0,0),8,0);
cvFillPoly(image, pts2, npts2, 1, CV_RGB(0,0,255),8,0);


cvShowImage("image", image);
cvWaitKey(0);
}*/


//畫多邊形
#include "cv.h"
#include "highgui.h"
#include "cxcore.h"
#include "stdio.h"


int main(void)
{
IplImage* image;
CvSize imagesize = cvSize(640,640);
CvPoint spoint1[7];
CvPoint* pts1[2] = {&spoint1[0],&spoint1[3]};
int npts1[2] = {3,4};


spoint1[0] = cvPoint(100,150);
spoint1[1] = cvPoint(430,240);
spoint1[2] = cvPoint(352,466);
spoint1[3] = cvPoint(440,300);
spoint1[4] = cvPoint(560,450);
spoint1[5] = cvPoint(318,600);
spoint1[6] = cvPoint(100,419);


image = cvCreateImage(imagesize, IPL_DEPTH_8U, 3);
cvFillPoly(image, pts1, npts1, 2, CV_RGB(255,0,0),8,0);


cvShowImage("image", image);
cvWaitKey(0);
}

相關推薦

OpenCV繪製多邊形和區域填充

OpenCV繪製多邊形和區域填充 繪製多邊形和區域填充主要用到了2個函式:polylines()和fillPoly()函式。 程式碼如下: #include<opencv2/opencv.hpp> #include<vector> #include <i

python opencv繪製多邊形多邊形填充

import numpy as np import cv2 import matplotlib.pyplot as plt a = np.array([[[10,10], [100,10], [100,100], [10,100]]], dtype = np.int32)

opencv繪製多邊形

opencv2.4.4 今天用cvFilllPoly()進行影象的繪製,其中遇到一些引數的問題,個人理解如下: CVAPI(void)  cvFillPoly( CvArr* img, CvPoint** pts, const int* npts,            

OpenCV——使用多邊形包圍輪廓

分享圖片 bubuko inf mage http nbsp png enc 圖片 OpenCV——使用多邊形包圍輪廓

OpenCV 繪製正多邊形

 OpenCV 繪製正多邊形 #include <iostream> #include <opencv2\core\core.hpp> #include <opencv2\opencv.hpp> #include <open

OpenCV繪製文字的程式碼及Mat/IplImage的轉換

  特別注意IplImage與Mat的轉換。 static void draw_count(FrameData* pFrame) { CvSize size; if (!(pFrame->buffer.data)) { return; }

C#繪製多邊形

輸入中心點座標、外切圓半徑、多邊形邊數,返回多邊形端點座標集。 列一下關鍵詞輔助搜尋引擎快速找到方法:c#繪製 五邊形 六邊形 八邊形 多邊形 /// <summary> /// 使用外切圓的方法繪製一個正多邊形 /// </summar

多邊型無序點排序(地圖繪製多邊形

從這些點裡隨便選一個(比如最左邊最下面哪一個) 然後以這個點為原點按極角排序(極角相同按距離排序)   前言 任務需求要做一個區域高亮的功能,用到地圖,想到了高德地圖的多邊形API,但是多邊形頂點的順序是要有序的,需求是無序,在API查詢無果的情況下,只能手動實現點集合排序。

怎麼在CAD中繪製多邊形

現在加入CAD行業的小夥伴們也越來越多了,但是對於才剛剛瞭解CAD的小夥伴們來說要想學好CAD,光有理論基礎肯定是不行的,還是要經過不斷的練習才可以的,那對於CAD小白來說,怎麼在CAD中繪製多邊形?小夥伴們都知道嗎?如果不知道的小夥伴們就可以看看一下操作步驟,希望能夠幫助到你們。 第一

opencv繪製圖形輪廓並篩選面積操作

1、 類比halcon的篩選區域面積的操作select_shape運算元,opencv也可以對圖形的輪廓進行面積的篩選,剔除無效區域。 int main() { Mat srcImage = imread("D:\\Opencv\\Project\\ConnectionPr

OpenCV 繪製人臉檢測框和關鍵點

在做人臉檢測時,我們需要將檢測的結果繪製到圖片上檢視效果,這時可以利用 OpenCV 的基本繪圖函式將人臉檢測框和人臉關鍵點繪製到原圖上。 關鍵程式碼如下: // TODO FaceDetectEngine 初始化 cv::Mat image = cv::im

matplotlib basemap 繪製多邊形區域曲線

1.簡介 在平常的python使用中,有些時候需要基於gis的地理資料繪製相關的資料圖形,如上圖所示,python中的matplotlib繪圖包當然能夠勝任這個工作,但實際操作中國確實有很多細節需要注意。 2.執行環境 python 3.5 :筆

180122 特徵值與特徵向量的幾何解釋與python程式碼,附matplotlib繪製多邊形

紅色 基座標(豎著看) 1 0 0 1 綠色 變換矩陣(豎著看) 3 1 0 2 藍色 特徵向量(豎著看) 1−2√2 02√2 黑色 變換矩陣(左乘)特徵向量(豎著看) 3

繪製多邊形

實現效果    知識運用:   Graphics類的DrawPolygon (Pen pen,Point[] points)  //繪製由一組Point結構定義的多邊形 實現程式碼: private void button1_Click(object sender, Event

安卓自定義View繪製多邊形

import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import andro

opencv多邊形建立mask

經常需要對影象的某一部分進行操作,這就牽涉到怎麼遍歷這一部分,最直接的方法就是建立一個mask影象,目標區域為255,非目標區域為0。這裡主要介紹一種從多邊形建立mask的方法。下面上程式碼: /* * create_mask.cpp * * Author: * Sidd

android 手把手教你使用Path繪製多邊形

在講使用path繪製多邊形時,講下Canvas的translate(),rotate()方法的使用,本部落格中會使用這方面的知識,先單獨講下,搞懂了這個,下面講path繪製多邊形就簡單的多,我們知道每

OpenCV——繪製填充輪廓drawContours

vector<vector<Point> > contours; contours.push_back(currentFrameEdge); Mat savedGrayMat = Mat::zeros(RectData[0].rows, RectData[0].cols, CV_

OpenCV繪製朱利亞(Julia)集合圖形

朱利亞集合是一個在複平面上形成分形的點的集合。以法國數學家加斯頓·朱利亞(Gaston Julia)的名字命名。 朱利亞集合可以由下式進行反覆迭代得到: 對於固定的複數c,取某一z值(如z = z0),可以得到序列  這一序列可能反散於無窮大或始終處於某一範圍之內並收斂

Kinect2+Opencv繪製聲源定位方向

沒什麼事兒做給之前的Kinect2聲源定位功能加上一個小的圖形化介面,效果如下圖所示: Kinect2的SDK會返回聲源相對於Kinect2正前方的角度,例如我在畫面中偏左,角度自然就偏左,大小為-0.52。 對於聲音,Kinect2這塊最重要的有兩個引數,一個是角度