Returns a number of array dimensions
| 1091 | |
| 1092 | // Returns a number of array dimensions |
| 1093 | CV_IMPL int |
| 1094 | cvGetDims( const CvArr* arr, int* sizes ) |
| 1095 | { |
| 1096 | int dims = -1; |
| 1097 | if( CV_IS_MAT_HDR( arr )) |
| 1098 | { |
| 1099 | CvMat* mat = (CvMat*)arr; |
| 1100 | |
| 1101 | dims = 2; |
| 1102 | if( sizes ) |
| 1103 | { |
| 1104 | sizes[0] = mat->rows; |
| 1105 | sizes[1] = mat->cols; |
| 1106 | } |
| 1107 | } |
| 1108 | else if( CV_IS_IMAGE( arr )) |
| 1109 | { |
| 1110 | IplImage* img = (IplImage*)arr; |
| 1111 | dims = 2; |
| 1112 | |
| 1113 | if( sizes ) |
| 1114 | { |
| 1115 | sizes[0] = img->height; |
| 1116 | sizes[1] = img->width; |
| 1117 | } |
| 1118 | } |
| 1119 | else if( CV_IS_MATND_HDR( arr )) |
| 1120 | { |
| 1121 | CvMatND* mat = (CvMatND*)arr; |
| 1122 | dims = mat->dims; |
| 1123 | |
| 1124 | if( sizes ) |
| 1125 | { |
| 1126 | int i; |
| 1127 | for( i = 0; i < dims; i++ ) |
| 1128 | sizes[i] = mat->dim[i].size; |
| 1129 | } |
| 1130 | } |
| 1131 | else if( CV_IS_SPARSE_MAT_HDR( arr )) |
| 1132 | { |
| 1133 | CvSparseMat* mat = (CvSparseMat*)arr; |
| 1134 | dims = mat->dims; |
| 1135 | |
| 1136 | if( sizes ) |
| 1137 | memcpy( sizes, mat->size, dims*sizeof(sizes[0])); |
| 1138 | } |
| 1139 | else |
| 1140 | CV_Error( CV_StsBadArg, "unrecognized or unsupported array type" ); |
| 1141 | |
| 1142 | return dims; |
| 1143 | } |
| 1144 | |
| 1145 | |
| 1146 | // Returns the size of particular array dimension |
no outgoing calls
no test coverage detected