opencv在android上的应用

来源:互联网 发布:c语言左移运算符7<<1 编辑:程序博客网 时间:2024/05/15 02:25

1. Scalar 的赋值用set(double[]);

2. Java中将一个变量赋值给另一个变量,如

ArrayList<Point> outOriginalPoints = new ArrayList<Point>();outOriginalPoints = originKeyPoints;
outOriginalPoints改变时
outOriginalPoints.set(0, outHeadTopPoint);

originKeyPoints的值也会随着改变。不知道为什么。。。

以下是解答:

拷贝所有的值 到另外一个ArrayList
ArrayList list=new ArrayList();
ArrayList aaa=list;//这个和list是指向同一个对象
也就是aaa改的话,list也会改的。

ArrayList list=new ArrayList();
ArrayList aaa=list;//这个和list是指向同一个对象
ArrayList bbb=new ArrayList();
bbb.addAll(list);//这个和list不是同一对象,但它们有相同的元素(在不添加其它元素的情况下)。


如何复制某个ArrayList到另一个ArrayList中去?写出你的代码?

下面就是把某个ArrayList复制到另一个ArrayList中去的几种技术:

  1. 使用clone()方法,比如ArrayList newArray = oldArray.clone();
  2. 使用ArrayList构造方法,比如:ArrayList myObject = new ArrayList(myTempObject);
  3. 使用Collection的copy方法。

注意1和2是浅拷贝(shallow copy)。

3. opencv进行图像的取某一点或者给某一点的像素赋值一定要注意横纵坐标,图像的左上角为坐标原点,x表示cols,y表示rows。

4. 线型:Core.circle(image, torsoProfiles.get(i), 2,new Scalar(255,255,255), Core.FILLED, Core.LINE_AA, 0);

5. Mac 下配置eclipse的内存,解决内存溢出问题:

一:右击Eclipse图标->选项->在Finder中显示

右击Eclipse图标->显示包内容

之后路径:Contents->MacOS->eclipse.ini->用文本编辑软件打开,

配置部分文件:

-vmargs
-Xms512m
-Xmx1024m
-XX:PermSize=512M
-XX:MaxPermSize=512M

保存,重启Eclipse。

6. opencv中Mat相乘:

Core.gemm(temp2.t(), X_t, 1,X_t, 0,temp3);

7. android中一个类里如果double类型的变量过多会报VerifyError的错误,尽量使用int类型。

8. 

//将两个图像融合到一起    //将frontInnerGrab放到outputInnerImage中outputInnerRect的位置    Core.addWeighted(outputInnerImage.submat(outputInnerRect), 0, frontInnerGrab, 1, 0, outputInnerImage.submat(outputInnerRect));

9. 

CV_8U and CV_8S -> byte[],CV_16U and CV_16S -> short[],CV_32S -> int[],CV_32F -> float[],CV_64F-> double[].

0 0
原创粉丝点击