MATLAB图像重心计算

图像重心(或质心)计算是计算机视觉和图像处理领域

应用领域广泛:包括医疗,生物,动画,机器人等。

该文章通过灰度转换->二值化->质心计算

以下是代码中涉及的一些数学概念和公式:

  1. 灰度转换

    • 从RGB到灰度的转换通常是通过加权平均的方式完成的,公式如下: Igray=0.2989⋅R+0.5870⋅G+0.1140⋅BIgray=0.2989⋅R+0.5870⋅G+0.1140⋅B 这里 RR, GG, BB 分别是红、绿、蓝三个颜色通道的强度,IgrayIgray 是转换后的灰度值。
  2. 二值化

    • imbinarize 函数会将灰度图像转换成二值图像,通常基于一个阈值 TT,如果像素值大于 TT 则设置为 1(白色),否则设置为 0(黑色)。这个过程可以用以下伪代码表示:

      复制代码
      if I_gray(x, y) > T then
          binaryImage(x, y) = 1;
      else
          binaryImage(x, y) = 0;
      end
    • 阈值 TT 可以通过不同的算法自动计算,例如Otsu方法。

3.计算

代码示例

Matlab 复制代码
​​​​clc
clear
image = imread('1.png');
grayImage = rgb2gray(image);
binaryImage = imbinarize(grayImage);
binaryImage = ~binaryImage;
stats = regionprops('table', binaryImage, 'Centroid', 'Area');
centroids = stats.Centroid;
areas = stats.Area;
% 选择面积最大的轮廓
[~, largestIdx] = max(areas);
centroid = centroids(largestIdx, :);
% 显示结果
figure;
imshow(image); % 显示原始图像
hold on;
plot(centroid(1), centroid(2), 'r*', 'MarkerSize', 10, 'LineWidth', 2); % 绘制重心
title('Detected Centroid');
hold off;
% 输出重心坐标
disp(['重心坐标: (', num2str(centroid(1)), ', ', num2str(centroid(2)), ')']);

实验测试

相关推荐
钟山翼3 小时前
notepad++ 使用 HexEditor 显示二进制 bin 文件存在的 bug
matlab·二进制文件
2zcode1 天前
项目文档:基于MATLAB图像处理与FCM聚类的骨癌X射线影像辅助检测系统设计与实现
图像处理·matlab·聚类
2zcode2 天前
项目文档:基于MATLAB深度卷积特征的多曝光图像自适应融合系统设计与实现
深度学习·计算机视觉·matlab
Promise微笑3 天前
回路电阻测试仪采购:多维度技术评估与深度避坑指南
开发语言·matlab·语音识别
程高兴4 天前
PMSM基于在线转动惯量辩识的滑模负载转矩观测器MATLAB-SIMULINK仿真模型
开发语言·matlab
2zcode5 天前
项目文档:基于MATLAB低采样率ISAR成像的快速稀疏重建算法研究
开发语言·算法·matlab
matlab代码5 天前
Matlab基于主成分分析PCA人脸识别系统(GUI界面)【源码44期】
开发语言·matlab·人脸识别
Evand J6 天前
【MATLAB例程】一维EKF(扩展卡尔曼滤波)、UKF(无迹卡尔曼滤波)、CKF(容积卡尔曼滤波)、PF(粒子滤波)四种滤波方法对比
开发语言·matlab·ekf·ckf
茗创科技6 天前
CGE连接组:用基因表达解码脑疾病的异质性(附高分文献下载)
python·matlab·脑网络