如何在 Mat 对象中插入一条线或矩形(openCV)

Yod*_*oda 0 java android opencv

我的类实现了一个CVCameraListener接口,该接口有一个方法onCameraFrame(),该方法返回Mat将显示在手机屏幕上的对象。(此方法返回您在手机屏幕上看到的内容)

如何在此Mat对象中插入一行?例如,我想从(x1,y1)到(x2,y2)画线。在Swing我会做:`g.drawLine(x1,y1,x2,y2)

方法:

public Mat onCameraFrame(Mat inputFrame) {
        inputFrame.copyTo(mRgba);      
        return mRgba;
    }
Run Code Online (Sandbox Code Playgroud)

Meh*_*ral 5

您可以使用 Imgproc.rectangle 方法绘制矩形。

Imgproc.rectangle(SrcMat, new Point(rect.x, rect.y), new Point(rect.x + rect.width, rect.y + rect.height), Detect_Color, 5);
Run Code Online (Sandbox Code Playgroud)

SrcMat 是您的源垫和您的输出,第一个点是矩形的起点,最后一个点是矩形的终点,Detect_Color 只是标量,例如new Scalar(0, 255, 0, 255); 5 是矩形的厚度