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

MATLAB中利用8个点坐标绘制图像透明bounding box的方法咨询

MATLAB基于4组顶点坐标绘制透明Bounding Box教程

实现步骤

  • 第一步:加载并显示目标图像,开启图形保持避免覆盖原图
    % 替换为你的目标图像路径
    img = imread("target_image.jpg");
    imshow(img);
    % 必须开启hold on,后续绘制的图形才会叠加在图像上
    hold on;
    
  • 第二步:整理你的4组顶点坐标为向量形式
    注意:请确保4个顶点按顺时针或逆时针顺序排列,否则绘制出的多边形会出现交叉变形
    % 替换为你实际的x1~x4、y1~y4坐标值
    x_coords = [x1, x2, x3, x4];
    y_coords = [y1, y2, y3, y4];
    
  • 第三步:调用fill函数绘制透明边界框
    核心通过FaceAlpha参数控制填充区域的透明度,取值范围为0~1,值越小透明度越高:
    % 示例:填充色为红色,透明度0.3,边框为蓝色、线宽2
    fill(x_coords, y_coords, 'r', ...
         'FaceAlpha', 0.3, ...
         'EdgeColor', 'b', ...
         'LineWidth', 2);
    
    % 如果不需要显示边框,将EdgeColor设为none即可
    % fill(x_coords, y_coords, 'r', 'FaceAlpha', 0.3, 'EdgeColor', 'none');
    
  • 第四步:关闭图形保持(可选)
    hold off;
    

完整可运行示例

你可以直接运行以下代码测试效果,再替换成自己的图像和坐标即可:

% 加载内置示例图像做演示
img = imread('peppers.png');
imshow(img);
hold on;

% 示例旋转边界框的4组顶点
x_coords = [120, 350, 330, 100];
y_coords = [100, 120, 350, 330];

% 绘制绿色填充、透明度0.4、黄色边框的边界框
fill(x_coords, y_coords, [0 1 0], ...
     'FaceAlpha', 0.4, ...
     'EdgeColor', [1 1 0], ...
     'LineWidth', 1.5);

hold off;

注意事项

  • 该方法同时支持轴对齐边界框、旋转边界框和任意四边形边界框的透明绘制,兼容性更强
  • 如果你使用的是MATLAB R2020a及以上版本,也可以用drawpolygon函数实现同样效果,但fill函数对旧版本的兼容性更好

内容的提问来源于stack exchange,提问作者Aadnan Farooq A

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 07:06:04