opencv 对图片缩放:
主要代码
package com.vav.dete;
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.util.Log;
import android.widget.ImageView;
public class ChangePicSizeActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ImageView ivp = new ImageView(this);
Bitmap bitmap = BitmapFactory.decodeFile("/mnt/sdcard/facedect/f.jpg");
Log.i("cpsa", "w:" + bitmap.getWidth() + " " + bitmap.getHeight());
int w = 640;
int h = 480;
Mat img = Highgui.imread("/mnt/sdcard/facedect/f.jpg");
Size dsize = new Size(640, 480);
Mat img2 = new Mat(w, h, CvType.CV_32S);
Imgproc.resize(img, img2, dsize);
if (Highgui.imwrite("/mnt/sdcard/facedect/f.jpg", img2)) {// 将图形保存到new.jpg中
File f = new File("/mnt/sdcard/facedect/f.jpg");
if (f.exists()) {
bitmap = BitmapFactory.decodeFile("/mnt/sdcard/facedect/f.jpg");
Log.i("cpsa", "2---w:" + bitmap.getWidth() + " " + bitmap.getHeight());
ivp.setImageBitmap(bitmap);
}
}
/*
* if(bitmap!=null){ bitmap.recycle(); bitmap=Bitmap.createBitmap(w, h,
* Bitmap.Config.ARGB_8888); android.MatToBitmap(img2,bitmap); }
*/
this.setContentView(ivp);
}
}
可以看到在sd卡中生成都是新的我们指定的大小的图片,android本身不能指定缩放图片大小
主要代码
package com.vav.dete;
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.util.Log;
import android.widget.ImageView;
public class ChangePicSizeActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ImageView ivp = new ImageView(this);
Bitmap bitmap = BitmapFactory.decodeFile("/mnt/sdcard/facedect/f.jpg");
Log.i("cpsa", "w:" + bitmap.getWidth() + " " + bitmap.getHeight());
int w = 640;
int h = 480;
Mat img = Highgui.imread("/mnt/sdcard/facedect/f.jpg");
Size dsize = new Size(640, 480);
Mat img2 = new Mat(w, h, CvType.CV_32S);
Imgproc.resize(img, img2, dsize);
if (Highgui.imwrite("/mnt/sdcard/facedect/f.jpg", img2)) {// 将图形保存到new.jpg中
File f = new File("/mnt/sdcard/facedect/f.jpg");
if (f.exists()) {
bitmap = BitmapFactory.decodeFile("/mnt/sdcard/facedect/f.jpg");
Log.i("cpsa", "2---w:" + bitmap.getWidth() + " " + bitmap.getHeight());
ivp.setImageBitmap(bitmap);
}
}
/*
* if(bitmap!=null){ bitmap.recycle(); bitmap=Bitmap.createBitmap(w, h,
* Bitmap.Config.ARGB_8888); android.MatToBitmap(img2,bitmap); }
*/
this.setContentView(ivp);
}
}
可以看到在sd卡中生成都是新的我们指定的大小的图片,android本身不能指定缩放图片大小