OpencvForAndroid快速遍历处理每个像素的方法
来源:互联网 发布:mac股票软件 编辑:程序博客网 时间:2024/05/01 09:33
在JAVA版的opencv中,获取像素值使用:double[] get(int row, int col)函数
更改像素值使用put(int row, int col, double... data)函数
一个直接类似C++版的at像素值遍历方法是
// <span style="font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif;">rGray</span><span style="font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif;">,</span><span style="font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif;">sGray</span><span style="font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif;">为使用的Mat格式变量</span><span style="font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif;"></span> for (int i = 0; i < dImg.height(); i++) { for (int j = 0; j < dImg.width(); j++) { if (rGray.get(i, j)[0] == 0) { sGray.put(i,j,0); } } }程序对rGray在(i,j)处的像素值进行判断,若rGray在(i,j)处的像素值为0,则令sGray在(i,j)处的像素值为0.
这种方法可以完成程序功能,但速度很慢。
要使程序速度更快,要将Mat数据转换成JAVA原始数据类型进行处理,以下为示例程序,因为我的图像是灰度图,程序中采用byte数组,size变量也没有乘通道数,对彩图进行操作需要相应修改这两点。
int size = (int) rGray.total(); byte[] rBuff = new byte[size]; byte[] sBuff = new byte[size]; rGray.get(0, 0, rBuff); sGray.get(0, 0, sBuff); for(int i = 0; i < size; i++) { sBuff[i] = (rBuff[i] == 0) ? 0 : sBuff[i]; } sGray.put(0, 0, sBuff);
0 0
- OpencvForAndroid快速遍历处理每个像素的方法
- 遍历像素的方法
- 遍历图像像素点的方法
- 遍历图像像素的14种方法
- 编译带有OpenCL的OpenCVForAndroid
- opencv中遍历图像每个像素点
- 图像像素的运算处理方法
- OpenCV2 访问各个像素点的方法(图像遍历)
- opencv2-遍历图像像素的14种方法
- OpenCV遍历彩色图像、灰度图像的像素值方法
- opencv高效访问图像像素(遍历像素的方法总结)
- OpenCV像素点邻域遍历效率比较,以及访问像素点的几种方法
- iOS 遍历图片每个像素点并修改rgb值
- Opencv 访问Mat中像素的值的快速方法
- 访问Mat中每个像素的值
- 访问Mat中每个像素的值
- 访问图像中每个像素的值
- scrollview 和tableview偏移64位像素的处理方法
- 循环链表实现约瑟夫问题
- Android中的AlarmManager
- 数据仓库与数据挖掘(二)
- 腾达AC15改内存闪存刷AC68U梅林
- php管理数组的函数
- OpencvForAndroid快速遍历处理每个像素的方法
- C++中数组以及多维数组作为函数参数时的一些问题
- C++(Singleton)更高效单例模式实现
- [hihocoder]:1048 状态压缩二(状压DP)
- “爆炸门”苹果补刀,三星该“哭晕了”!
- Button、ImageView、RadioButton、CheckBox、AutoCompleteTextView简单使用
- Javaの路
- C strcmp 与 strncmp
- BNU19323 UVA10905 Children's Game