找代码的网站,做债的网站,wordpress小程序前端,网站建设 任务目录
1.Mat类矩阵的常用属性
2.Mat元素的读取
1.at方法读取Mat矩阵元素 at (int row,int col)
2.矩阵元素地址定位方式访问元素
3.Android jni demo 1.Mat类矩阵的常用属性 下面是一些Mat类的常用属性#xff1a; rows: 返回Mat对象的行数。 cols: 返回Mat对象的列数。 …目录
1.Mat类矩阵的常用属性
2.Mat元素的读取
1.at方法读取Mat矩阵元素 at (int row,int col)
2.矩阵元素地址定位方式访问元素
3.Android jni demo 1.Mat类矩阵的常用属性 下面是一些Mat类的常用属性 rows: 返回Mat对象的行数。 cols: 返回Mat对象的列数。 dims: 返回Mat对象的维度数通常为2表示二维矩阵。 size(): 返回Mat对象的尺寸行数和列数。 empty(): 返回一个布尔值判断Mat对象是否为空即未分配内存。 total(): 返回Mat对象的总元素数。 type(): 返回Mat对象的数据类型例如CV_8UC1表示8位无符号单通道图像。 channels(): 返回Mat对象的通道数。 depth(): 返回Mat对象中每个像素元素的深度。 elemSize(): 返回Mat对象中每个像素元素的大小以字节为单位。 elemSize1(): 返回Mat对象中每个像素元素的大小以字节为单位不考虑通道数。 isContinuous(): 返回一个布尔值指示Mat对象的数据是否连续存储。 total(): 返回Mat对象的总元素数量。 step: 返回Mat对象中每行像素数据的字节步长。 2.Mat元素的读取
1.at方法读取Mat矩阵元素 at (int row,int col)
单通道: int value (int)a.atuchar(0, 0); 多通道: cv::Vec3b vc3 b.atcv::Vec3b(0, 0) int first (int)vc3.val[0]; 2.矩阵元素地址定位方式访问元素
单通道 (int)(*(b.data b.step[0] * row b.step[1]* col channel)); 比较直观
不用考虑数据类型
3.Android jni demo
#include jni.h
#include string
#include android/bitmap.h
#include opencv2/opencv.hpp
#include iostream
#include android/log.h#define LOG_TAG xxx
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, __VA_ARGS__)
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO, LOG_TAG, __VA_ARGS__)
#define LOGW(...) __android_log_print(ANDROID_LOG_WARN, LOG_TAG, __VA_ARGS__)
#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, __VA_ARGS__)using namespace cv;
using namespace std;extern CJNIEXPORT void JNICALLJava_com_example_myapplication_MainActivity_test(JNIEnv *env, jclass clazz) {Mat c0(5,5,CV_8UC1,Scalar(4,5,6));Mat c1(5,5,CV_8UC2,Scalar(4,5,6));Mat c2(5,5,CV_8UC3,Scalar(4,5,6));Mat d (Mat_int(1, 5) 1, 2, 3, 4, 5);ostringstream ss;ssMat d的【00】d.atint(0,0)endl;Vec2b vcc1.atVec2b(0,1);ssvc.val[0](int)vc.val[0] vc.val[1](int)vc.val[1]endl;ss(int)(*(c2.data c2.step[0] * 2 c2.step[1]* 2 3))endl;LOGD(%s,ss.str().c_str());}运行结果