《學習OpenCV》 初探OpenCV(三)

2021-08-29 20:10:54 字數 3397 閱讀 5657

引數1:影象;

引數2:矩形的乙個頂點

引數3:矩形另乙個頂點

引數4:線條顏色(rgb)或亮度(灰度影象)

可省略(有過載函式):

引數5:線條粗細程度,取cv_filled表填充色彩矩陣

引數6:線條型別

引數7:座標點的小數

cvmat* cvcreatemat(int rows, int cols, int type);      //新建二維矩陣

typedef struct cvmatdata;

union;

union;

} cvmat;

建立矩陣方法:

1.cvcreatemat();//由多個原函式租成,如cvcreatematheader();建立結構不分配記憶體;cvcreatedata();分配記憶體

2.cvcreatematheader();

3.cvclonemat(cvmat*);//從現有矩陣建立新的矩陣,cvreleasemat(cvmat*)釋放

//建立乙個矩陣

cvmat* cvcreatemat( int rows, int cols, int type );

// create only matrix header without allocating data

//建立乙個頭矩陣(沒有分配空間)

cvmat* cvcreatematheader( int rows, int cols, int type );

//在現在的矩陣初始化標頭檔案

cvmat* cvinitmatheader(

cvmat* mat,

int rows,

int cols,

int type,

void* data = null,

int step = cv_autostep

);//初始化並分配空間

cvmat cvmat(

int rows,

int cols,

int type,

void* data = null

);//賦值乙個矩陣

cvmat* cvclonemat( const cvmat* mat );

//釋放矩陣記憶體

void cvreleasemat( cvmat** mat );

float vals = [0.866025, -0.500000, 0.500000, 0.866025];

cvmat rotmat;

cvinitmatheader(

&rotmat,

2,2,

cv_32fc1,

vals);

矩陣建立之後常用操作:

cvgetelemtype(const cvarr* arr);//返回資料中元素型別

cvgetdiams(const cvarr* arr, int* sizes=null);//返回矩陣維度

cvgetdiamsize(const cvarr* arr, int index);//返回矩陣在某乙個維數上矩陣的大小

//巨集訪問矩陣

//3-4

cvmat* mat = cvcreatemat(5,5,cv_32fc1);

float element_3_2 = cv_mat_elem(*mat, float,3,2);

//3-5

cvmat* mat = cvcreatemat(5,5,cv_32fc1);

float element_3_2 = 7.7;

*((float*)cv_mat_elem_ptr(*mat,3,2)) = element_3_2;

//指標訪問矩陣結構

//3-6

uchar* cvptr1d(

const cvarr* arr,

int idx0,

int* type = null

);uchar* cvptr2d(

const cvarr* arr,

int idx0,

int idx1,

int* type = null

);uchar* cvptr3d(

const cvarr* arr,

int idx0,

int idx1,

int idx2,

int* type = null

); uchar* cvptrnd(

const cvarr* arr,

int* idx,

int* type = null,

int create_node = 1,

unsigned* precalc_hashval = null

);

資料是按光柵掃瞄順序儲存,列(x)是變化最快的變數

#include "cv.h"

#include "highgui.h"

#include "pch.h"

#include using namespace cv;

float sum(cvmat* mat)

} return(s);

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

opencv初探 行人檢測

話不多說,直接上 這裡採用opencv自帶的hogdescriptor 分裝好的類進行檢測,效果也還行。這裡新增了tk檔案選擇,可以嘗試檢測自己蒐集的行人 import cv2 import tkinter as tk from tkinter import filedialog defis ins...

OpenCV第一發 測試VS配置OpenCV

最近看到網上的視覺處理特別有意思,作為乙個甚至是計算機的門外漢來說直接學習第三方庫是很困難的,悔恨當初沒有去學計算機專業,哈哈哈哈哈哈哈哈哈,沒辦法了,為了對得起我的好奇心,我決定開始攻克它。第四步 開幹.配置環境變數,我的目錄是 e opencv build bin c 新增庫檔案目錄,我的目錄是...

caffe學習 學習初探

關於安裝 關於安裝裝置 關於學習 推薦大神denny的caffe學習總結 目前只看了一小小部分,講的通俗易懂,膜拜學習ing 將大神的mnist例項 測試數字,即識別1 9 總結重新跑一下,遇到的問題 importerror no module named skimage.io cannot use...