gpt4 book ai didi

java - 裁剪图像的中心

转载 作者:太空宇宙 更新时间:2023-11-03 23:02:14 28 4
gpt4 key购买 nike

我是 OpenCV 的新手,所以请耐心等待。我正在做一个 Android 应用程序来测量叶子颜色的相似性。我试过使用 canny 只检测叶面积,但我认为它需要更长的过程。这里是代码,只对叶面积进行检测。

public class editImage extends Activity {
//private static final int CV_64FC1 = 0;
protected ImageView im;
protected String msg_path;
private Mat mMatriximg;

private Mat mMatriximgBW;
private int CV_64FC1;

//private Mat mMatriximgBW;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.image_layout);

im = (ImageView) findViewById(R.id.imV_ed);
Intent iIdentify = getIntent();
msg_path = iIdentify.getStringExtra("path");

//to grayscale
int im_gray = Highgui.CV_LOAD_IMAGE_GRAYSCALE;
mMatriximg = Highgui.imread(msg_path, im_gray);

// call library OpenCV
//Imgproc.equalizeHist(mMatriximg, mMatriximg);
Imgproc.Canny(mMatriximg, mMatriximg, 50, 150);

mMatriximgBW = Mat.zeros(mMatriximg.height(), mMatriximg.width(), CV_64FC1);

double y;
double threshold=190;

for(int i=0; i<mMatriximg.height(); i++){
for(int j=0; j<mMatriximg.width(); j++){
if(mMatriximg.get(i, j) [0]>=threshold){
y=255;
}else{
y=0;
}
mMatriximgBW.put(i, j, new double[] {y});
}
}

//result mat to Grayscale
Imgproc.cvtColor(mMatriximgBW, mMatriximgBW, Imgproc.COLOR_GRAY2RGBA, 4);

Bitmap bmpOut = Bitmap.createBitmap(mMatriximgBW.cols(), mMatriximgBW.rows(), Bitmap.Config.ARGB_8888);

Utils.matToBitmap(mMatriximgBW, bmpOut);
im.setImageBitmap(bmpOut);

}

public void bckHome(View v){
Intent iIden = new Intent(this, MBWDActivity.class);
setResult(RESULT_OK, iIden);
startActivityForResult(iIden, 99);
}
}

所以我想如果我把叶子的中心切下来作为样本数据(矩阵)会更有效率。

有谁可以分享一下如何实现cvSetImageROI或者其他方法吗?

谢谢你的帮助

最佳答案

我已经介绍了这个主题 on this answer .

您需要创建一个具有 ROI 尺寸的 Rect。然后,创建一个新的 Mat 并将原始图像作为第一个参数传递给其构造函数,并将具有 ROI 的矩形作为第二个参数。

关于java - 裁剪图像的中心,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14825533/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com