写了个图像缩放的小程序,仅为使用下opencv for Andorid。
在Android2.3.1模拟器运行,程序界面:
点击缩小按钮,界面如下:
代码如下:
package cn.netava.opencv;
import java.io.File;
import org.opencv.core.CvType;
import org.opencv.core.Mat;
import org.opencv.core.Size;
import org.opencv.highgui.Highgui;
import org.opencv.imgproc.Imgproc;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;
public class ButtonSizeImage extends Activity {
private Button deal_button;
private ImageView imgview;
private Bitmap bm;
private boolean flag=false;//判断缩放还是恢复,初始值为false
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// 缩放按钮
deal_button = (Button) this.findViewById(R.id.button1);
// 存放照片图层
imgview = (ImageView) this.findViewById(R.id.imageView1);
// 显示照片
bm = BitmapFactory.decodeFile("/sdcard/girl.jpg");
imgview.setImageBitmap(bm);
//匿名内部类,创建缩小事件监听器
OnClickListener clicklisten=new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(flag){
deal_button.setText("缩小");
flag=false;
// 显示照片
bm = BitmapFactory.decodeFile("/sdcard/girl.jpg");
imgview.setImageBitmap(bm);
}
else{
deal_button.setText("恢复");
flag=true;
double scale = 0.1; // 缩放比例
Mat img = Highgui.imread("/sdcard/girl.jpg");// 读入图片,将其转换为Mat
Size dsize = new Size(img.width() * scale, img.height() * scale); // 设置新图片的大小
Mat img2 = new Mat(dsize, CvType.CV_16S);// 创建一个新的Mat(opencv的矩阵数据类型)
Imgproc.resize(img, img2,dsize);//调用Imgproc的Resize方法,进行图片缩放
if(Highgui.imwrite("/sdcard/girlnew.jpg", img2)){//将图形保存到new.jpg中
File f = new File("/sdcard/girlnew.jpg");
if(f.exists())
{
bm=BitmapFactory.decodeFile("/sdcard/girlnew.jpg");
imgview.setImageBitmap(bm);
}
}
else{
Toast.makeText(ButtonSizeImage.this, "===========图片缩小失败============!!", 3).show();
}
}
}
};
//缩放按钮添加点击事件监听器
deal_button.setOnClickListener(clicklisten);
}
}
分享到:
相关推荐
OpenCV是一个基于Apache2.0许可(开源)发行的跨平台计算机视觉和机器学习软件库,网络上一些小伙伴写的一些关于Android版OpenCV的博客,大部分都模糊不清,基本就复制粘贴的,有些甚至没有实践就直接贴上去了,这样...
还是个新手,只是想把自己做的传上来,和大家讨论以及希望大神们给些建议,也希望能帮助一些和我一样的初学者
检测耳朵形状并提取ROI 通过对称填充提高检测到的ROI 提取耳标移除异常值估计耳朵的方向根据正确的角度对齐图像并应用缩放技巧提取图像描述符并使用图库模板计算相似度分数互动演示下载(约120MB),并将其安装在您...
android图片处理,缩放、压缩、剪切、水印、黑白、旋转等10多种特效
本资源中的源码都是经过本地编译过可运行的,下载后按照文档配置好环境就可以运行。资源项目的难度比较适中,内容都是经过助教老师审定过的,应该能够满足学习、使用需求,如果有需要的话可以放心下载使用。...
实验原理:1.OpenCV:OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列C函数和少量C++类构成,同时提供了Python、...
Android图像处理(一) 简单的特效 平移 缩放 等-附件资源
3、基于OpenCV-android-sdk3.0,编译时,可将工程拷到OpenCV-android-sdk的sampls目录下。 4、编译后生成的日志在sd卡的ai目录下,首次安装或者升级时也会将.xml文件拷贝到该目录下。 5、显示区的图像指示缩放和拖拽...
YUV转换后的图像还原度很差,有明显的色差,而且在运行时间长的安卓手机上,性能明显下降。 最后,没有办法开始使用 RenderScript。 我得谈谈谷歌。 他只提供了一个ScriptIntrinsicYuvToRGB,不支持YUV420_
opencv grabcut抠图 图片修改,图片剪切、压缩、缩放。
使用智能算法(基于opencv)识别图片中的边框 支持先进锚点,手动调节选区,放大镜效果提升定位体验 使用透视变换裁剪并矫正正选区,还原正面图片 支持丰富的UI设置,如辅助线,蒙版,锚点,放大镜等 例子() 1....