相关疑难解决方法(0)

如何自动识别双峰直方图?

我有一个问题,我从一些数据库图像中收到大量直方图。这些直方图表示为向量 (0...255),我必须识别并使用双峰直方图。

是否有一个公式可以自动识别哪些直方图是双峰的,哪些不是?由于它们是数字向量,我可以使用编程语言(Java/C#)来处理它。

文献中有没有软件识别双峰直方图的标准?


以下是我正在使用的直方图和格式输入的 3 个示例。每个直方图都是一个具有 256 (0...255) 个位置的向量。

Histogram 1
8029, 41, 82, 177, 135, 255, 315, 591, 949, 456, 499, 688, 446, 733, 712, 1595, 2633, 3945, 6134, 9755, 9236, 11911, 11888, 9450, 13119, 8819, 5991, 4399, 6745, 2017, 3747, 1777, 2946, 1623, 2151, 454, 3015, 3176, 2211, 1080, 391, 580, 750, 473, 10424, 334, 559, 621, 340, 2794, 1094, 5274, 2822, 204, 389, 728, 268, 15, 1060, 58, 113, 2728, 52, 3166, 11, 103, 522, 107, …
Run Code Online (Sandbox Code Playgroud)

image-processing histogram

5
推荐指数
1
解决办法
4840
查看次数

需要有关调色板颜色量化的帮助:java - Android

我正在Android上开发一个项目,这要求我最多可以过滤5种不同的颜色 - 包括背景颜色(近似白色).我不能使用高级数学算法,因为我不太了解数学(我会完全迷失),但是我使用了一些简单的逻辑算法,这些算法部分是通过反复试验得出的,部分是逻辑的,我已经能够结果可以说是70%.但我需要有关如何使其100%工作的建议.

为了测试算法,我在普通白(第5色)纸上用4种不同颜色的笔潦草地写下随机字/字母,然后写了一些代码来解码颜色.所以在代码中算法......

  • 如果红笔墨水像素被解码,则像素被设置为数字红色
  • 如果蓝色笔墨水像素被解码,则像素被设置为数字蓝色
  • 如果绿色笔墨像素被解码,则像素被设置为数字绿色
  • 如果黑色笔墨水像素被解码,则像素被设置为数字黄色

黑色墨水像素设置为数字黄色(非黑色,因为黑色很难在视觉上与墨水黑色区分).

我的代码如下,但首先是我的最佳结果之一.如您所见,黑色(用数字黄色表示)和红色(用数字红色表示)之间的边缘有重叠.就像我说我的代码是部分逻辑部分试错.

我的第一个问题是如何改进这个算法,以便完美地解码/过滤颜色(我之所以选择这种方法是因为我很快就会因为非常复杂的数学而迷路)?

其次,我怎样才能使它适用于不同的光线(白光,黄光......)?

编辑:经过进一步的评论和讨论,我意识到我需要的帮助是调色板颜色量化Adroid java代码示例,谢谢

未解码的原始图像

解码图像,差不多但还不够好

if(  (Blue > Green) &&(Red > Blue) && (Red - Green) > 25 )
    copyOfBM.setPixel(x,  y, Color.RED); //red
else if(  (Blue > Red) && ( (Blue > Green)) )
    copyOfBM.setPixel(x,  y, Color.BLUE);
else if( (Green >= 82) && ((Green - Blue) >= 12)  && 
  ((DecodeLuminaceColor( x, y, copyOfBM )>= 82 ) && 
   (DecodeLuminaceColor( x, y, copyOfBM )< 124))  )
    copyOfBM.setPixel(x,  y, Color.GREEN);
else if( ((Red - …
Run Code Online (Sandbox Code Playgroud)

java algorithm image-processing

5
推荐指数
1
解决办法
1033
查看次数

在OpenCv中对cv :: Mat进行排序

OpenCV中是否有与[srtd,srtdinds] = sort(dst,'ascend');Matlab 类似的函数?我试过cv::sortIdx(source, dst, cv::SORT_ASCENDING);但它不起作用.我的来源Mat包含一个列.

c++ opencv

4
推荐指数
1
解决办法
1万
查看次数

我应该使用HSV/HSB还是RGB?为什么?

我必须在含有另一种血细胞的图像中检测白细胞,但可以通过细胞的颜色来区分,白细胞有更浓密的紫色,可以在下图中看到.

我使用RGB/HSV的颜色方法是什么?为什么?!

样本图片:

血细胞图像

rgb image-processing hsv

4
推荐指数
1
解决办法
4342
查看次数

RGB 值基色名称

我想找到颜色名称,给出它的 RGB 值。

RGB 值示例为:(237, 65, 83)

预定义值

数组(11, '红色', '#FF0000', '255,0,0'),

array(3, '棕色', '#A52A2A', '165,42,42')

如果我使用这种方法距离计算

我得到的颜色是棕色的。

但如果我们在这里测试 RGB 值,实际颜色是红色

已编辑 1

<?php 

 $colors = array(
 array(1, 'Black', '#000000', '0,0,0'),
 array(2, 'Blue',  '#0000FF', '0,0,255'),
 array(3, 'Brown', '#A52A2A', '165,42,42'),    
 array(4, 'Cream', '#FFFFCC', '255,255,204'),   
 array(5, 'Green', '#008000', '0,128,0'),        
 array(6, 'Grey',  '#808080', '128,128,128'),
 array(7, 'Yellow', '#FFFF00', '255,255,0'),
 array(8, 'Orange', '#FFA500', '255,165,0'),          
 array(9, 'Pink', '#FFC0CB', '255,192,203'), 
 array(11, 'Red', '#FF0000', '255,0,0'),  
 array(10, 'Purple', '#800080', '128,0,128'),
 array(12, 'Tan', '#d2b48c', '210,180,140'),
 array(13, 'Turquoise', '#40E0D0', …
Run Code Online (Sandbox Code Playgroud)

algorithm rgb colors

3
推荐指数
1
解决办法
4031
查看次数

标签 统计

image-processing ×3

algorithm ×2

rgb ×2

c++ ×1

colors ×1

histogram ×1

hsv ×1

java ×1

opencv ×1