C++を使用してイメージ内の輪郭線を検出できました。しかし、私はAndroidでjava langを使ってそれを変換したい。だから、私はアンドロイドスタジオを使ってそれを作る。 (輪郭が[contourIdx] .size(あれば)OpenCV:輪郭検出Android contourldxの問題
: (私はJAVAの初心者です一因)
は、その後、私はそれを実行すると、私はこのコードのエラーの問題を抱えていた、いくつかの問題を発見しました> 100)
このメインプログラムでは、
@Override
public void onCameraViewStarted(int width, int height) {
mRgba = new Mat(height, width, CvType.CV_8UC4);
mHsv = new Mat(height,width,CvType.CV_8UC3);
hierarchy = new Mat();
mHsvMask = new Mat();
mDilated = new Mat(height, width, CvType.CV_8UC4);
}
@Override
public void onCameraViewStopped() {
mRgba.release();
mHsv.release();
mHsvMask.release();
mDilated.release();
hierarchy.release();
}
@Override
public Mat onCameraFrame(CameraBridgeViewBase.CvCameraViewFrame inputFrame) {
mRgba =inputFrame.rgba();
mHsv = new Mat();
Imgproc.cvtColor(mRgba, mHsv, Imgproc.COLOR_RGB2HSV, 3);
hierarchy.release();
Scalar lowerThreshold = new Scalar (120, 100, 100);
Scalar upperThreshold = new Scalar (179, 255, 255);
Core.inRange (mHsv, lowerThreshold , upperThreshold, mHsvMask);
Imgproc.dilate (mHsvMask, mDilated, new Mat());
Imgproc.findContours(mDilated, contours, hierarchy, Imgproc.RETR_LIST, Imgproc.CHAIN_APPROX_SIMPLE);
for (int contourIdx=0; contourIdx < contours.size(); contourIdx++)
{
if(contours[contourIdx].size()>100) // Minimum size allowed for consideration
{
Imgproc.drawContours (mRgba, contours, contourIdx, new Scalar(0,255,0) , -5);
}
}
return mRgba;
}
}
うまくいけば、誰かがこれについていくつかの経験を持っています。おかげで..
おい、それを試してみてください:D –