如何找到图像像素值的众数(统计数据)?

2023-12-05

我正在使用 opencv,并且可以通过下面的代码获取图像的像素——一个 3 维元组。但是,我不太确定如何计算图像中像素值的模式。

import cv2
import numpy as np
import matplotlib.pyplot as plt

import numpy as np
import cv2


img =cv2.imread('C:\\Users\Moondra\ABEO.png')

#px = img[100,100]  #gets pixel value
#print (px)

我试过,

from scipy import stats
stats.mode(img)[0]

但这会返回一个数组形状

stats.mode(img)[0].shape
(1, 800, 3)

不确定具体如何stats正在计算选择模式的维度,但我正在寻找每个像素值(3维元组)作为一个元素。

编辑: 为了清楚起见,我将准确地列出我正在寻找的内容。 假设我们有一个形状为 (3,5,3) 的数组,如下所示

array([[[1, 1, 2],    #[1,1,2] = represents the RGB values
        [2, 2, 2],
        [1, 2, 2],
        [2, 1, 1],
        [1, 2, 2]],

       [[1, 2, 2],
        [2, 2, 2],
        [2, 2, 2],
        [1, 2, 2],
        [1, 2, 1]],

       [[2, 2, 1],
        [2, 2, 1],
        [1, 1, 2],
        [2, 1, 2],
        [1, 1, 2]]])

然后我会将其转换为一个看起来像这样的数组,以便于计算

把这个变成

array([[1, 1, 2],
         [2, 2, 2],
         [1, 2, 2],
        [2, 1, 1],
        [1, 2, 2],

       [1, 2, 2],
        [2, 2, 2],
        [2, 2, 2],
        [1, 2, 2],
        [1, 2, 1],

       [2, 2, 1],
        [2, 2, 1],
        [1, 1, 2],
        [2, 1, 2],
        [1, 1, 2]])


which is of shape(15,3)

我想通过计算每组 RGB 来计算模式,如下所示:

 [1,1,2] = 3
 [2,2,2] = 4  
[1,2,2] = 4
[2,1,1] = 2
[1,1,2] =1

谢谢。


从描述来看,您似乎正在寻找输入图像中出现次数最多的像素。为了解决这个问题,这是一种使用概念的有效方法views -

def get_row_view(a):
    void_dt = np.dtype((np.void, a.dtype.itemsize * np.prod(a.shape[-1])))
    a = np.ascontiguousarray(a)
    return a.reshape(-1, a.shape[-1]).view(void_dt).ravel()

def get_mode(img):
    unq, idx, count = np.unique(get_row_view(img), return_index=1, return_counts=1)
    return img.reshape(-1,img.shape[-1])[idx[count.argmax()]]

我们还可以利用np.unique以其axis论证,就像这样——

def get_mode(img):
    unq,count = np.unique(img.reshape(-1,img.shape[-1]), axis=0, return_counts=True)
    return unq[count.argmax()]

样本运行 -

In [69]: img = np.random.randint(0,255,(4,5,3))

In [70]: img.reshape(-1,3)[np.random.choice(20,10,replace=0)] = 120

In [71]: img
Out[71]: 
array([[[120, 120, 120],
        [ 79, 105, 218],
        [ 16,  55, 239],
        [120, 120, 120],
        [239,  95, 209]],

       [[241,  18, 221],
        [202, 185, 142],
        [  7,  47, 161],
        [120, 120, 120],
        [120, 120, 120]],

       [[120, 120, 120],
        [ 62,  41, 157],
        [120, 120, 120],
        [120, 120, 120],
        [120, 120, 120]],

       [[120, 120, 120],
        [  0, 107,  34],
        [  9,  83, 183],
        [120, 120, 120],
        [ 43, 121, 154]]])

In [74]: get_mode(img)
Out[74]: array([120, 120, 120])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何找到图像像素值的众数(统计数据)? 的相关文章

  • 使用 ffmpegframerecorder android 保存视频

    我正在尝试保存该视频并收到此错误 我添加了两个jar文件1 javacv 2 javacpp and for 相机预览我用过opencv 我在这里添加代码 公共无效运行 while true Bitmap bmp null synchron
  • python求边数

    我使用下面的代码来查找图像中的边数 但它没有给出适当的结果 导入CV2 image cv2 imread sheet jpg gray cv2 cvtColor image cv2 COLOR BGR2GRAY thresh cv2 thr
  • Numpy:堆叠屏蔽数组并计算最小值/最大值

    我正在使用屏蔽数组 我想计算不同数组 列的最大值 如果整个数组被屏蔽 我就会遇到问题 Example import numpy as np x np ma array np array 1 2 3 4 100 mask True True
  • 如何避免 numpy.random.choice 中的舍入错误?

    假设 x 1 x 2 x n 是 n 个对象 并且想要选择其中一个 以便选择 x i 的概率与某个数字 u i 成正比 Numpy 为此提供了一个函数 x u np array x 1 x 2 x n np array u 1 u n np
  • 提取 numpy 数组的边界

    Let A是一个代表掩码的 numpy 数组 我想提取与该掩码相对应的边界 即 使除边界之外的所有内容都为零 eg In 22 A array 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
  • 如何生成具有预定义概率分布的随机数?

    我想在 python 中实现一个函数 使用numpy 需要一个数学函数 例如p x e x 如下 作为输入并生成随机数 这些随机数根据该数学函数的概率分布进行分布 我需要绘制它们 以便我们可以看到分布 我实际上需要一个随机数生成器函数 用于
  • 将曲线图案与图像边缘匹配

    我有一个要搜索沿其边缘的曲线的目标图像和一个包含该曲线的模板图像 我需要实现的是在目标图像中找到模板图像中的曲线的最佳匹配 并根据分数来判断是否匹配 这还包括曲线的旋转和大小调整 目标图像可以是 Canny Edge 检测器的输出 如果这能
  • 如何使用 Scipy 从 3D 体积中提取任意 2D 切片?

    我使用 Scipy 从 3D 数据 矢量 200x200x200 渲染平面 我可以通过 2 个向量或向量和角度来指定所需的平面 我想从这个 3D 体积中提取这样一个任意切片 我找到了如何在 Matlab 中做到这一点 http www ma
  • 在 AWS Tensorflow 实例中安装 SciPy

    我完全碰壁了 我正在尝试将 SciPy 安装在预先配置了 Tensorflow 的 AWS 实例上 该实例没有apt get包管理器 所以我被迫使用pip 所以我尝试过udo usr local bin pip install scipy
  • 如何使用 BoW 正确训练 OpenCV SVM

    我无法训练 SVM 识别我的对象 我正在尝试使用 SURF Bag Of Words SVM 来做到这一点 我的问题是分类器没有检测到任何东西 所有结果都是0 这是我的代码 Ptr
  • OpenCV 从中心 x,y 绘制矩形

    我想仅使用中心点绘制一个矩形 所以在我的中心点周围几乎是一个矩形 最简单的方法是什么 谢谢 考虑到中心 x y then cv rectangle image cvPoint x w 2 y h 2 cvPoint x w 2 y h 2
  • numpy.array_equal 返回 False,即使数组具有相同的形状和值

    我有一个非常简单的功能 如下所示 def new price A B x return np linalg inv A B x 这些是我给它的输入 A np array 2 0 1 0 1 1 1 1 0 0 0 10 B np array
  • python中不完整的gamma函数?

    the scipy special gammainc第一个参数不能取负值 python 中还有其他实现吗 我当然可以进行手动集成 但我想知道是否已经存在好的替代方案 Correct result 1 Gamma 1 1 0 85 Use S
  • 使用 openCV 检测 ROI

    我正在做一项工作 我必须找到感兴趣的区域 ROI 然后对图像执行阈值 由于我不是计算机领域的 所以我遇到了一些困难 我开始尝试通过以下代码找到投资回报率 code string filename 2011 06 11 09 3A12 3A1
  • 矩阵乘法,求解 Ax = b 求解 x

    因此 我接到了一项家庭作业 要求求解三次样条的系数 现在我清楚地了解如何在纸上以及使用 MatLab 进行数学计算 我想用 Python 解决问题 给定一个方程 Ax b 其中我知道 A 和 b 的值 我希望能够使用 Python 求解 x
  • 大负数的指数

    如何在 Python 上计算 np exp 28000 等数字 答案大约是5E 12161 有人告诉我 由于双精度浮点格式 我只能计算 gt 1e 2048 的数字 Try mpmath http mpmath org 用于任意精度的浮点运
  • 如何将具有对象数据类型的 Numpy 2D 数组转换为常规的浮点数 2D 数组

    作为我正在开发的更广泛程序的一部分 我最终得到了包含字符串 3D 坐标等的对象数组 所有这些都混合在一起 我知道与结构化数组相比 对象数组可能不是很受欢迎 但我希望在不更改大量代码的情况下解决这个问题 假设我的数组 obj array 有
  • OpenCV - 我需要将彩色图像插入黑白图像并且

    我用以下代码将黑白图像插入彩色图像 没问题 face grey cv cvtColor face cv COLOR RGB2GRAY for row in range 0 face grey shape 0 for column in ra
  • 是否有更矢量化的方法来沿轴执行 numpy.outer ?

    gt gt gt x np array a0 a1 b0 b1 gt gt gt y np array x0 x1 y0 y1 gt gt gt iterable np outer x i y i for i in xrange x sha
  • Python:帮助(numpy)在退出时导致段错误

    我遇到了一个奇怪的现象 在 python 解释器中 我执行以下操作 gt gt gt import numpy gt gt gt help numpy 帮助显示正确 但一旦我按 q 返回解释器 Segmentation fault core

随机推荐

  • 使用根节点勾选后中心力定向布局(返回中心)

    我正在使用 D3 js 尝试强制定向布局 我需要的是按根 或其他选定的节点 将布局居中 并在刻度函数完成后将此节点返回到 svg 例如画布 中心 图形 alpha 较低 是否可以 我找到了一个例子 http bl ocks org 1080
  • 将 DKM 项目链接到内核映像 (VIP) 项目作为 VxWorks Workbench4 中的子项目/额外模块

    如何将 DKM 项目与内核映像 VIP 项目链接 加载 以便我可以从内核映像项目的 usrAppInit c 调用 DKM 项目 应用程序 的入口点函数 以在启动时自动启动应用程序 有人可以描述步骤或向我指出任何文档吗 将 DKM 项目添加
  • 如何使用反应钩子将新值推入当前数组?

    这是源代码 import React useState from react import ReactDOM from react dom import styles css function App const arr setArr us
  • Codeigniter xss_clean 困境

    我知道这个问题已经被问了一遍又一遍 但我仍然没有找到我喜欢的完美答案 所以这里又来了 我读过很多关于 CI 的 xss filter 的两极分化的评论 基本上大多数人都说这很糟糕 有人可以详细说明它的坏处吗 或者至少给出一种最有可能被利用的
  • 获取 SQL 中每 X 行的平均值

    假设我有下表 Id Value 1 2 0 2 8 0 3 3 0 4 9 0 5 1 0 6 4 0 7 2 5 8 6 5 我想绘制这些值 但由于我的真实表有数千个值 我考虑对每 X 行进行获取和平均值 有什么方法可以让我这样做 即每
  • 如何使用 Open XML SDK 获取 SdtBlock 元素中的形状列表?

    如何使用 Open XML SDK 获取广告块元素中的形状 文本框 列表 Regards 为了抓取一个图中的所有形状WordProcessingDocument您可以使用 linq 遍历 body 的所有后代 using Wordproce
  • 将 Java 字符串传递给 Javascript

    我正在尝试通过使用 JSON 格式的字符串初始化 Javascript 变量来加载数据表 如果我声明
  • 自动完成文本框控件

    我想要一个文本框控件 它可以使用 C 2008 和 LINQ 在 Windows 应用程序中建议和附加数据库中的值 我用组合框来做到这一点 但我不能用文本框来做到这一点 我该怎么做 这可能不是最好的方法 但应该有效 this textBox
  • Android GSON反序列化删除空数组

    我正在使用 GSON 和 Retrofit 我想禁用空数组字段反序列化 DTO public class Entity implements Serializable SerializedName body Expose private B
  • QT QItemSelectionModel 忽略列?

    我试图将树的选择限制为特定列 我大量使用委托来创建自定义的每项每列行为 编辑器等 我希望我可以通过阻止事件或类似的事情从委托中以某种方式完成此操作 问题是 我认为我必须创建一个完全自定义的解决方案来模仿扩展选择 然而 经过大量搜索和很少的示
  • 如何找到列末尾的最后一个单元格的值比 Google 表格中的其他列短?

    我试图弄清楚如何将值添加到 Google 表格中特定列的最后一行 并非电子表格 表格中的所有列都具有相同的长度 因此我不能简单地查找最后一行并添加到列中 我需要找到列中的下一个空单元格并在其中添加新值 浏览文档我认为涉及getRange a
  • GPX 文件无法加载 iOS Xcode

    我正在尝试使用 gpx 文件来模拟位置 该文件在 Xcode 中不起作用 也不显示任何错误 文件大小为 1 1 MB 具有从起始点 A 到起始点 B 的跟踪数据 这会引起任何问题吗 有什么建议吗 Ref 将 GPX 文件添加到 Xcode
  • 在滚动上绘制弯曲(响应式)SVG 路径

    在阅读了所有关于使用 strokeDashArray 技巧对 SVG 进行动画处理的讨论后 我终于找到了一些代码来将此功能连接到用户在屏幕上的滚动位置 电缆代码 blog 这个想法很棒 但我有一条波浪形的 弯曲的路径 实际上在某一点上循环
  • 为什么 Java 的 % 运算符对于负股息给出的结果与我的计算器不同?

    为什么在计算器上 1 mod 26 25 但是在 C 或 Java 中 1 26 1 我需要一个像计算器一样解决这个问题的程序 两者有区别吗 两个答案 25 和 1 都是有效的 只是不同的系统有不同的约定 我看到最常见的 数学 是 quot
  • 如何在NamedQuery中编写NamedQuery半正弦公式?

    我想将半正矢公式的查询作为 NamedQuery 运行 但我不知道如何纠正它 set orig lat 37 334542 set orig lon 121 890821 set dist 10 select 3956 2 ASIN SQR
  • ASP.NET Core razor 页面应用程序中左侧的导航菜单带有关闭和打开按钮

    我正在为我的应用程序使用剃刀页面 我尝试将导航菜单从顶部移动到左侧 我按照此链接中提到的步骤操作如何在引导程序中创建保留的侧边栏菜单 因为我希望我的菜单与该链接中显示的完全一样 但我无法达到结果 链接中提到了有关 simple sideba
  • Objective-c 是否遵循操作顺序(Bedmas)?

    我只是想知道 因为我构建的应用程序做了一个相当长的方程 并且结果与在 Excel 电子表格上完成的结果不同 我在 Excel 电子表格上得到了方程 输入数字越大 差异越大 这是我在 xcode 中输入的等式 360 num1 num3 1
  • svg animateMotion 偏离路径

    I have this svg 我的目标是让盒子沿着路径移动 同时保持旋转 为了实现这一点 我添加了一个
  • PHP XML 实体编码问题

    经过几个小时的研究 我无法找到这个问题的答案 我正在尝试将 XML 字符串发送给第三方 因此我需要对一些字符进行编码 在本例中是单引号 也许还有双引号 我使用 PHP XML Dom 来实现此目的 但 saveXML 函数似乎总是对引号进行
  • 如何找到图像像素值的众数(统计数据)?

    我正在使用 opencv 并且可以通过下面的代码获取图像的像素 一个 3 维元组 但是 我不太确定如何计算图像中像素值的模式 import cv2 import numpy as np import matplotlib pyplot as