OPENCV檢測矩形並計算其中心

2021-06-26 14:45:38 字數 1278 閱讀 9143

#include "cv.h"  

#include "highgui.h"  

#include

#include

#include

#pragma comment(lib, "cv.lib")  

#pragma comment(lib, "cxcore.lib")  

#pragma comment(lib, "highgui.lib")  

iplimage* img =null;  

iplimage* img0 = null;  

cvmemstorage* storage =null;  

const char * wndname = "正方形檢測 demo";  

//angle函式用來返回(兩個向量之間找到角度的余弦值)  

double angle( cvpoint* pt1, cvpoint* pt2, cvpoint* pt0 )  

// 返回影象中找到的所有輪廓序列,並且序列儲存在記憶體儲存器中  

cvseq* findsquares4( iplimage* img, cvmemstorage* storage )  

else  

// 找到所有輪廓並且儲存在序列中  

cvfindcontours( img, storage, &contours, sizeof(cvcontour),  

// 遍歷找到的每個輪廓contours  

while( contours )  

}  // if 余弦值 足夠小,可以認定角度為90度直角  

度,能較好的趨近直角  

if( s < 0.1 )    

for( i = 0; i < 4; i++ )  

cvseqpush( squares,  

(cvpoint*)cvgetseqelem( result, i ));  

}  // 繼續查詢下乙個輪廓  

contours = contours->h_next;  

}  }  

return squares;  

}  //drawsquares函式用來畫出在影象中找到的所有正方形輪廓  

void drawsquares( iplimage* img, cvseq* squares )  

cvshowimage( wndname, cpy );  

cvreleaseimage( &cpy );  

}  int main(int argc, char** argv)  

OpenCV矩形檢測

opencv矩形檢測 需求 提取影象中的矩形,影象存在汙染現象,即矩形區域不是完全規則的矩形。思路一 輪廓法 opencv裡提取目標輪廓的函式是findcontours,它的輸入影象是一幅二值影象,輸出的是每乙個連通區域的輪廓點的集合 vector 外層vector的size代表了影象中輪廓的個數,...

利用opencv檢測出矩形

pragma once include troot.h include cbintoprofile.h include th1.h include cbmpdiff.h include ccircletopeak.h include ccolorcut.h include ccubicbspline...

Opencv 找輪廓並畫出相應的矩形

找輪廓參考以下大神的,對於裡面的方法和結果儲存解釋的很清楚 缺少的是畫相應包圍矩形的,其中找矩形用最小外接矩形函式cvminarearect2 cvbox2d rect cvpoint2d32f corners 4 rect cvminarearect2 pcontour,0 cvboxpoints...