Java OpenCV相同的坐标表示不同的点?

Java OpenCV相同的坐标表示不同的点?,java,android,opencv,image-processing,colors,Java,Android,Opencv,Image Processing,Colors,我试图从红色圆圈的内部获取颜色,并更改位于左上角的大圆圈的颜色,如图所示。如屏幕截图所示,大圆圈的颜色与红色圆圈的颜色不一样,它的颜色比红色圆圈稍微偏左一点。我给了同样的药片,怎么修复 这是我的密码 public class MainActivity extends AppCompatActivity implements CameraBridgeViewBase.CvCameraViewListener2, View.OnTouchListener { private CameraB

我试图从红色圆圈的内部获取颜色,并更改位于左上角的大圆圈的颜色,如图所示。如屏幕截图所示,大圆圈的颜色与红色圆圈的颜色不一样,它的颜色比红色圆圈稍微偏左一点。我给了同样的药片,怎么修复

这是我的密码

public class MainActivity extends AppCompatActivity implements CameraBridgeViewBase.CvCameraViewListener2, View.OnTouchListener {

    private CameraBridgeViewBase cameraManager;

    private BaseLoaderCallback callBack = new BaseLoaderCallback(this) {
        @Override
        public void onManagerConnected(int status) {
            cameraManager.enableView();
        }
    };

    Mat mRgba;
    double[] renk;
    int r,g,b;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        if(!OpenCVLoader.initDebug()){
            OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_3_2_0, this, callBack);
        }

        cameraManager = (CameraBridgeViewBase)findViewById(R.id.kamera);
        cameraManager.setVisibility(View.VISIBLE);
        cameraManager.setCvCameraViewListener(this);
        cameraManager.setCameraIndex(0);
    }

    @Override
    public void onCameraViewStarted(int width, int height) {
        mRgba = new Mat(width, height, CvType.CV_8UC4);
    }

    @Override
    public void onCameraViewStopped() {

    }

    @Override
    public Mat onCameraFrame(CameraBridgeViewBase.CvCameraViewFrame inputFrame) {
        mRgba = inputFrame.rgba();

        renk = mRgba.get(mRgba.width()/2, (mRgba.height()/10)*8);
        Imgproc.circle(mRgba, new Point(mRgba.width()/2, (mRgba.height()/10)*8), 10, new Scalar(255,0,0));

        r = (int) renk[0];
        g = (int) renk[1];
        b = (int) renk[2];

        Imgproc.circle(mRgba, new Point(0, 0), 100, new Scalar(r,g,b), 100);

        return mRgba;

    }

    @Override
    public boolean onTouch(View v, MotionEvent event) {
        return false;
    }
}
(代表OP发布)


我猜到了。点(x,y)=列,行。

提供输入图像。您的代码看起来正常,颜色不能来自圆圈的左侧。我已在两个不同的设备上尝试过,但结果相同。还有什么会导致这种情况@请提供您正在谈论的图像,而不仅仅是手机屏幕截图。所以你想告诉我,你在两台不同的设备上有相同的颜色,两台不同的相机有两张不同的图片?结果以前是一样的。它在其他任何地方挑选颜色@小猪好的,再读一遍主题@Piege