gpt4 book ai didi

c++ - 使用 C++ 获取 vector 中出现次数最多的值

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:38:29 29 4
gpt4 key购买 nike

我现在正在使用 vector <cv::Vec3b> 存储图像的 RGB 值.

为了避免混淆,让我尝试进一步澄清我的问题。例如,我有一个大小为 10 的 vector 。存储的值如下所示:

 Vector address        RGB Values(R,G,B)
[0][0][0]= 255,255,255
[1][1][1]= 40,42,40
[2][2][2]= 40,42,40
[3][3][3]= 40,42,40
[4][4][4]= 40,2,60
[5][5][5]= 9,9,0
[6][6][6]= 40,2,60
[7][7][7]= 40,42,40
[8][8][8]= 255,255,40
[9][9][9]= 255,255,40

据观察,出现次数最多的值是 (40,42,40)。我如何获得这些值?我希望找到 vector 中出现次数最多的 RGB 值。有人对我如何做有任何建议和代码示例吗?谢谢。

最佳答案

假设您的 3D 数组是 array[][][] 并且在某个位置 (x,y) 您得到 R=200、G=100、B=10 然后您将递增array[200][100][10] 的值加 1。让您在另一个位置再次获得 R=200、G=100、B=10 然后您将再次递增 array[200][100][10] 减 1 所以,现在 array[200][100][10] 的总值为 2。您将对所有像素位置。

然后,最后您将找到 3D 数组中的最大值,假设最大值为 1000,位于 array[210][15][10]。这表示出现次数最多的R.G和B的组合是“R=210,G=15,B=10”

因此,简而言之,我们可以说 [ ][ ][ ] 处的值告诉您组合 [R][G][B] 出现了多少次。

关于c++ - 使用 C++ 获取 vector<cv::Vec3b> 中出现次数最多的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21693841/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com