【发布时间】:2014-12-30 14:31:55
【问题描述】:
当我尝试初始化 MAt 对象时,错误是 unsatisfiedLinkError。我在 opencv 加载成功后对其进行初始化。但再次出现错误。请提出您的意见。公共类 NextActivity 扩展 Activity 实现 OnItemSelectedListener{ 位图位图; 图像视图图像视图; 字符串 TAG="FinalCamera"; int selectedFilter,selectedKMap; 搜索栏搜索栏; 垫 imgMat,tmp;
//native function
//public native int convertNativeGray(long matAddrRgba, long matAddrGray,int selectedFilter,int ksize);
//loading and connecting to opencv library
private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) {
@Override
public void onManagerConnected(int status) {
switch (status) {
case LoaderCallbackInterface.SUCCESS:
{
System.loadLibrary("mixed_sample");
Log.i(TAG, "OpenCV loaded successfully");
} break;
default:
{
super.onManagerConnected(status);
} break;
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_next);
imageView=(ImageView)findViewById(R.id.imageView1);
// bitmap = getIntent().getExtras().getParcelable("name");
imageView.setImageBitmap(bitmap);
//for spinner
Spinner spinner = (Spinner) findViewById(R.id.filter_spinner);
// Create an ArrayAdapter using the string array and a default spinner layout
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
R.array.Filters, android.R.layout.simple_spinner_item);
// Specify the layout to use when the list of choices appears
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// Apply the adapter to the spinner
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(this);
//for kmap
seekBar = (SeekBar) findViewById(R.id.seekBar1);
seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
public void onProgressChanged(SeekBar seekBar, int progresValue, boolean fromUser) {
selectedKMap = progresValue;
System.out.println("The selected KMap is"+selectedKMap);
}
public void onStartTrackingTouch(SeekBar seekBar) {}
public void onStopTrackingTouch(SeekBar seekBar) {}
});
}
@Override
public void onResume()
{
super.onResume();
OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_9, this, mLoaderCallback);
realProcessing();
}
public void realProcessing()
{
System.out.println("This is real processing");
bitmap = getIntent().getExtras().getParcelable("name");
bitmap = bitmap.copy(Bitmap.Config.ARGB_8888, true);
//here in below line there is error
tmp = new Mat (bitmap.getWidth(), bitmap.getHeight(), CvType.CV_8UC1);
// imgMat = new Mat (bitmap.getWidth(), bitmap.getHeight(), CvType.CV_8UC1);
// Utils.bitmapToMat(bitmap, tmp);
//convertNativeGray(tmp.getNativeObjAddr(), imgMat.getNativeObjAddr(),2,3);
//Utils.matToBitmap(imgMat, bitmap);
imageView.setImageBitmap(bitmap);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.next, menu);
return true;
}
@Override
//when seekbar an item is selected then this method will be called
public void onItemSelected(AdapterView<?> parent, View view,
int pos, long id) {
// TODO Auto-generated method stub
selectedFilter=pos+1;
System.out.println("This is selected filter="+selectedFilter);
}
@Override
//when nothing changed this method will be called
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
}
【问题讨论】: