Android Jni 利用OpenCV 实现图像尺寸缩放(一)
来源:互联网 发布:数控车床计算软件下载 编辑:程序博客网 时间:2024/06/16 17:47
一,上java代码
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private Button btnProc;private ImageView imageView;private Bitmap bmp;// Used to load the 'native-lib' library on application startup.static { System.loadLibrary("native-lib");}@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Example of a call to a native method btnProc = (Button) findViewById(R.id.btn_gray_process); imageView = (ImageView) findViewById(R.id.image_view); bmp = BitmapFactory.decodeResource(getResources(), R.drawable.test5); imageView.setImageBitmap(bmp); btnProc.setOnClickListener(this);}/** * A native method that is implemented by the 'native-lib' native library, * which is packaged with this application. */public static native int[] grayProc(int[] pixels, int w, int h);@Overridepublic void onClick(View view) { int w = bmp.getWidth(); int h = bmp.getHeight(); int[] pixels = new int[w*h]; bmp.getPixels(pixels, 0, w, 0, 0, w, h); long startTime = System.currentTimeMillis(); int[] resultInt = grayProc(pixels, w, h); long endTime = System.currentTimeMillis(); w = w/2; h = h/2; Log.e("JNITime",""+(endTime-startTime)); Bitmap resultImg = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888); //(@ColorInt int[] pixels, int offset, int stride,int x, int y, int width, int height) resultImg.setPixels(resultInt, 0, w, 0, 0, w, h); imageView.setImageBitmap(resultImg);}
}
二,实现jni方法(利用resize())
extern “C”
JNIEXPORT jintArray JNICALL
Java_com_example_dgxq008_opencv_1readpixel_MainActivity_grayProc(JNIEnv *env, jclass type
, jintArray pixels_
, jint w
, jint h) {
jint* pixels = env->GetIntArrayElements(pixels_, NULL);if (pixels==NULL){ return 0;}//图片一进来时是ARGB 通过mat转换BGRAMat img(h,w,CV_8UC4,(uchar *)pixels); //pixels 操作的是同一份数据Mat temp;//进行尺寸调整操作//( InputArray src, OutputArray dst, Size dsize, double fx = 0, double fy = 0, int interpolation = INTER_LINEAR );//要特别注意对应 Size_(_Tp _width, _Tp _height);resize(img,temp,Size( img.cols/2, img.rows/2 ));//对应数据指针uchar* ptrTemp = temp.data;int size = w*h/4;jintArray result = env->NewIntArray(size);env->SetIntArrayRegion(result,0,size,(jint*)ptrTemp);env->ReleaseIntArrayElements(pixels_, pixels, 0);return result;
}
阅读全文
0 0
- Android Jni 利用OpenCV 实现图像尺寸缩放(一)
- Android Jni 利用OpenCV 实现图像尺寸缩放(二)
- Android Jni 利用OpenCV 实现图像尺寸缩放(三)
- Android Jni 利用OpenCV transpose()函数实现图像转置
- Android Jni 利用OpenCV 实现图像任意角度旋转
- opencv实现图像缩放
- OpenCV实现图像缩放
- Android平台上利用opencv进行图像的缩放
- opencv缩放图像的实现
- opencv实现图像的缩放
- 图像尺寸变化-图像缩放
- opencv实现图像的剪切和缩放
- 图像金字塔及尺寸缩放
- opencv:图像尺寸调整
- Android Jni OpenCV-灰度图像的直方图
- 完成OpenCV图像缩放
- opencv中图像缩放
- opencv-图像缩放
- Codeforces Round #446 (Div. 2) E. Envy
- 【云计算的1024种玩法】使用 NAS 文件储存低价获得好磁盘性能
- hammer.js自定义vue指令的简单例子
- tensorflow 去重
- 快速修改win系统的hosts文件
- Android Jni 利用OpenCV 实现图像尺寸缩放(一)
- Could not write JSON document: (was java.lang.NullPointerException) (through reference chain
- C语言基础与提高5
- JPA Specification常用查询+排序
- 你可能不知道的RoR 5点技巧
- H.264 打包 MPEG-TS 流
- wps自动备份的文件,备份到本地哪里了?
- 【097】Nginx实现一台服务器,两个域名发布不同的前端项目,并且两个域名都用80端口。
- 数据结构上机——哈夫曼树 线索二叉树