You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在OpenCV Java中为图像或视频绘制中线

在OpenCV Java环境下为图像或视频画面绘制中线的解决方案

最近我刚好搞定了这个需求,把在OpenCV Java里给图像或者视频流绘制中线的方法分享给大家:

核心思路很简单:先获取画面的宽度和高度,计算出中线的两个端点(左端点在画面左侧中间,右端点在画面右侧中间),然后用OpenCV的画线方法在每一帧上绘制这条线即可。

下面是完整的实现代码:

Mat frame = new Mat();
VideoCapture camera = new VideoCapture(0);
// 获取视频帧的宽度和高度
int frame_width = (int) camera.get(Videoio.CAP_PROP_FRAME_WIDTH); // 示例值:640
int frame_height = (int) camera.get(Videoio.CAP_PROP_FRAME_HEIGHT); // 示例值:480

// 定义中线的两个端点
Point middle_of_frame_left = new Point();
Point middle_of_frame_right = new Point();
middle_of_frame_left.x = 0;
middle_of_frame_left.y = frame_height / 2; // 坐标为(0, 240)(以480高度为例)
middle_of_frame_right.x = frame_width;
middle_of_frame_right.y = frame_height / 2; // 坐标为(640, 240)(以640宽度为例)

while (true) {
    // 读取下一帧视频画面
    if (camera.read(frame)) {
        // 绘制红色中线,线宽为5
        Imgproc.line(frame, middle_of_frame_left, middle_of_frame_right, new Scalar(0, 0, 255), 5);
        // 这里可以添加显示帧的代码,比如HighGui.imshow("Frame", frame); HighGui.waitKey(1);
    }
}

代码说明:

  • VideoCapture(0):调用电脑的默认摄像头获取视频流,如果是处理本地视频文件,可以替换为视频文件路径
  • Videoio.CAP_PROP_FRAME_WIDTH/CAP_PROP_FRAME_HEIGHT:获取视频帧的宽高参数
  • Imgproc.line():参数依次为要绘制的图像、起点、终点、颜色(这里是红色,BGR格式)、线宽
  • 注意如果需要显示画面,记得添加HighGui.imshow和HighGui.waitKey的代码,否则看不到绘制后的效果

内容的提问来源于stack exchange,提问作者Hareeshkumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:54:14