【问题标题】:define a black image in matlab在matlab中定义一个黑色图像
【发布时间】:2013-11-20 11:58:14
【问题描述】:

我正在编写一个算法来定义整个或大部分是黑色的图像。
我检查了一些图像,发现这些图像的 RGB 格式的值大多在 30 到 40 之间。
我的想法对吗?
如果是,我如何检查矩阵中的大多数值(在这种情况下矩阵是我的图像)是否在 30 到 40 之间?
我使用mean,但结果仍在数组中,然后我使用norm,但出现此错误:
未定义函数'norm'用于'uint8'类型的输入参数

【问题讨论】:

  • 不确定你希望通过计算标准找到什么,但如果你想像这样包装你的图像:double(myImage)

标签: matlab image-processing matrix normalization


【解决方案1】:

如果您想查看图像中出现了哪些值,您可以执行以下操作:

假设你有一个图像 M:

M = uint8(magic(5));

以下是获取粗略分布的方法:

hist(double(M(:)))

您可以一次在整个图像上使用它,也可以按如下所示对每个通道执行此操作:

M = uint8(round(255*randn(5,5,3)))

hist(double(M(:))) % Will give the results for all color channels at once
hist(double(M(:,:,1))) % Will give the results for only the first (red?) color channel

使用hist 应该可以让您大致了解分布,但如果您想知道最常出现的确切值。将hist 替换为mode

【讨论】:

    【解决方案2】:

    我假设您的图像大小为 M x N x3(宽度 x 高度 x RGB 分量),并且您想要所有三个分量(R、G、 B)小于40(那些将是暗像素)。然后,简单地做

        mean(mean(all(matrix<40,3),2),1)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-09
      • 1970-01-01
      • 2012-02-29
      • 2013-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多