Структура
|
Ўз ичига олади
|
Ифодалайди
|
CvPoint
|
int x, y
|
Тасвирдаги нуқта
|
CvPoint2D32f
|
float x, y
|
R2 даги нуқта
|
CvPoint3D32f
|
float x, y, z
|
R3 даги нуқта
|
CvSize
|
int width, height
|
Тасвир ҳажми
|
CvRect
|
int x, y, width, height
|
Тасвир бўлаги (қисми)
|
CvScalar
|
double val[4]
|
RGBA қийматлар
|
Масалан, myImg тасвирида чап юқори бурчаги (5, 10), яъни х=5, y=10 ва ўнг қуйи бурчаги (20, 30) координатали тўртбурчакни оқ рангда чизиш учун қуйидагича дастур кодини ёзиш керак бўлади:
cvRectangle( myImg, cvPoint(5,10), cvPoint(20,30), cvScalar(255,255,255) );
OpenCV да қуйидагича тасвир турлари мавжуд:
Тасвир типи (Macro)
|
Тасвир пиксел типи
|
IPL_DEPTH_8U
|
Unsigned 8-bit integer (8u)
|
IPL_DEPTH_8S
|
Signed 8-bit integer (8s)
|
IPL_DEPTH_16S
|
Signed 16-bit integer (16s)
|
PL_DEPTH_32S
|
Signed 32-bit integer (32s)
|
IPL_DEPTH_32F
|
32-bit fl oating-point single-precision (32f)
|
IPL_DEPTH_64F
|
64-bit fl oating-point double-precision (64f)
|
Қуйидаги жадвалда матрица ва тасвирнинг асосий операторлари келтирилган.
Функция
|
Таърифи
|
cvAbs
|
Массив (матрица) даги барча элементларнинг абсолют қиймати
|
cvAbsDiff
|
Иккита массив ўртасидаги фарқларнинг абсолют қиймати
|
cvAbsDiffS
|
Массив ва скаляр ўртасидаги фарқларнинг абсолют қиймати
|
cvAdd
|
Иккита массивни элементлари бўйича қўшиш
|
cvAddS
|
Массив ва скалярни элементлари бўйича қўшиш
|
cvAddWeighted
|
Иккита массивни элементлари бўйича вазн (вес)ли қўшиш (алфа қориштириш)
|
cvAvg
|
Массивдаги барча элементларнинг ўртача қиймати
|
cvAvgSdv
|
Массивдаги барча элементларнинг абсолют қиймати ва стандарт четлашиши
|
cvCalcCovarMatrix
|
n-ўлчовли вектор тўпламининг ковариансини ҳисоблаш
|
cvCmp
|
Иккита массивнинг барча элементларига танланган таққослаш операторини қўллаш.
|
cvCmpS
|
Скалярга нисбатан массивга танланган таққослаш операторини қўллаш.
|
cvConvertScale
|
Қийматнинг танловли қайта ўлчови орқали массив типини ўзгартириш.
|
cvConvertScaleAbs
|
Танловли қайта ўлчов орқали абсолют қийматдан кейин массив типини ўзгартириш.
|
cvCopy
|
Бир массивдаги элементларни бошқасига нусхалаш.
|
cvCountNonZero
|
Массивдаги нолга тенг бўлмаган элементларни ҳисоблаш.
|
cvCrossProduct
|
Уч ўлчовли иккита векторни кўпайтириш.
|
cvCvtColor
|
Массив ранг каналларини бир ранг фазосидан бошқасига ўзгартириш (алмаштириш).
|
cvDet
|
Квадрат матрицанинг детерминантини ҳисоблаш
|
cvDiv
|
Элементлар бўйича бир массивни бошқасига бўлиш.
|
cvDotProduct
|
Иккита векторни скаляр (ички) кўпайтириш.
|
cvEigenVV
|
Квадрат матрицанинг хос сон ва хос векторларини ҳисоблаш
|
cvFlip
|
Танланган ўқ бўйича массивни тўнтариш (ойнали намойиш қилиш).
|
cvGEMM
|
Умумлашган матрица кўпайтириш.
|
cvGetCol
|
Массивнинг устун кесимидан элементларни нусхалаш
|
cvGetCols
|
Массивнинг турли қўшни устунларидан элементларни нусхалаш.
|
cvGetDiag
|
Диагонал бўйича массив элементларини нусхалаш.
|
cvGetDims
|
Массив ўлчамини қайтаради.
|
cvGetDimSize
|
Массивнинг барча ўлчамлари ҳажмини қайтаради.
|
cvGetRow
|
Массивнинг қатор кесимидан элементларни нусхалаш
|
cvGetRows
|
Массивнинг турли қўшни қаторларидан элементларни нусхалаш.
|
cvGetSize
|
Икки ўлчовли массив ҳажмини олиш ва уни CvSize шаклида қайтариш.
|
cvGetSubRect
|
Массив бир бўлаги элементларини нусхалаш.
|
cvInRange
|
Массив элементини бошқа иккита массив қийматлари ичида мавжудлигини текшириш.
|
cvInRangeS
|
Массив элементини бошқа иккита скаляр ўртасида мавжудлигини текшириш.
|
cvInvert
|
Квадрат матрицани инвертлаш (барча элемент қийматлари 255 дан айрилади).
|
cvMahalonobis
|
Иккита вектор орасидаги Махалонобис масофасини ҳисоблаш.
|
cvMax
|
Иккита массивнинг элементлари бўйича махсимумлар операцияси.
|
cvMaxS
|
Массив ва скаляр ўртасидаэлементлари бўйича махсимумлар операцияси.
|
cvMerge
|
Бир нечта бир каналли тасвирларни битта кўп каналли тасвирга бирлаштириш.
|
cvMin
|
Иккита матрицада элементлар бўйича минимумлар операцияси
|
cvMinS
|
Массив ва скаляр ўртасида элементлар бўйича минимумлар операцияси
|
cvMinMaxLoc
|
Массивда минимум ва максимум қийматларни топиш.
|
cvMul
|
Иккита массивни элементлар бўйича кўпайтириш.
|
cvNot
|
Массивни ҳар бир элементини битли инвертлаш.
|
cvNorm
|
Иккита массив ўртасидаги нормаланган корреляцияни ҳисоблаш.
|
cvNormalize
|
Массивдаги элементларни бирор сонгача номаллаш.
|
cvOr
|
Иккита массивнинг элементлари бўйича “ЁКИ” (OR) бит-даражаси.
|
cvOrS
|
Массив ва скалярнинг элементлари бўйича “ЁКИ” (OR)бит-даражаси.
|
cvReduce
|
Берилган амал бўйича икки ўлчовли массивни векторга айлантирмоқ.
|
cvRepeat
|
Бир массив мажмуини бошқасига қуриш.
|
cvSet
|
Массивнинг барча элементларига берилган сон қийматини ўрнатиш.
|
cvSetZero
|
Массивнинг барча элементларига 0 қиймати ўрнатилади (берилади).
|
cvSetIdentity
|
Массивнинг барча элементларига диагонал бўйича 1, қолганига эса 0 қиймати берилади.
|
cvSolve
|
Чизиқли тенгламалар системасини ечиш.
|
cvSplit
|
Кўп каналли массивни турли бир каналли массивларга бўлиш.
|
cvSub
|
Бир массивдан иккинчисини элементлар бўйича айириш.
|
cvSubS
|
Скалярни массивдан элементлар бўйича айириш.
|
cvSubRS
|
Массивни скалярдан элементлар бўйича айириш.
|
cvSum
|
Массивни барча элементлари суммаси (йиғиндиси).
|
cvSVD
|
Икки ўлчовли массивнинг ягона бўлиниш қийматини ҳисоблаш.
|
cvSVBkSb
|
Тескари алмаштиришнинг ягона қийматини ҳисоблаш.
|
cvTrace
|
Массив белгиларини ҳисоблаш.
|
cvTranspose
|
Массивнинг барча элементларини диагонал бўйича ўзгартириш.
|
cvXor
|
Иккита массив элементлари бўйича XOR (истисно ЁКИ) бит – даражаси.
|
cvXorS
|
Массив ва скаляр ўртасидаги массив элементлари бўйича XOR бит – даражаси.
|
cvZero
|
Массивнинг барча элементларига 0 қиймати берилади.
|
3. OpenCV да чизиш
Баъзан тасвир устида бирор фигурани чизиш керак бўлиб қолади. OpenCV да тўғри чизиқ, тўртбурчак, айлана ва шу каби геометрик фигураларни чизиш функциялари мавжуд. Улар билан қуйида танишамиз.
Тўғри чизиқ:
void cvLine( CvArr* array, CvPoint pt1, CvPoint pt2, CvScalar color,
int thickness = 1, int connectivity = 8 );
Бу ерда CvArr – тасвир, pt1 – чизиқнинг бошланиш координатаси, pt2 – чизиқнинг якунланиш координатаси, color – чизиқ ранги, thickness – чизиқ қалинлиги, connectivity – чизиқ тури.
Тўғри тўртбурчак:
void cvRectangle( CvArr* array, CvPoint pt1, CvPoint pt2, CvScalar color, int thickness = 1 );
Айлана:
void cvCircle (CvArr* array, CvPoint center, int radius, CvScalar color, int thickness = 1, int connectivity = 8);
Бу ерда center – айлана маркази, radius – айлана радиуси.
Эллипс:
void cvEllipse( CvArr* img, CvPoint center, CvSize axes, double angle,
double start_angle, double end_angle, CvScalar color,
int thickness = 1, int line_type = 8 );
Бу ерда axes – ўқ ҳажми, start_angle – бошланғич бурчак, end_angle – охирги бурчак.
Полигонлар:
Полигонларни қуйидаги уч хил функция ёрдамида чизиш мумкин.
void cvFillPoly( CvArr* img, CvPoint** pts, int* npts, int contours, CvScalar color, int line_type = 8 );
void cvFillConvexPoly( CvArr* img, CvPoint* pts, int npts, CvScalar color, int line_type = 8 );
void cvPolyLine( CvArr* img, CvPoint** pts, int* npts, int contours, int is_closed,
CvScalar color, int thickness = 1, int line_type = 8 );
Матнлар:
void cvPutText( CvArr* img, const char* text, CvPoint origin, const CvFont* font, CvScalar color );
|