【问题标题】:problem when creating binary histograms using winform chart使用 winform 图表创建二进制直方图时的问题
【发布时间】:2021-11-25 20:16:12
【问题描述】:

对于我当前的项目,我正在尝试创建图像中像素强度的直方图,在使用二值图像时,峰值应该只有 0 和 255,但是我得到的是某种长条,它不是我要找的。我认为这与图表中的设置有关,因为当我使用常规图像而不是二进制图像时,我会得到正确的直方图。 示例图片:

Example of histogram problem

Binary picture I'm using

当我输出所有点时,我得到以下信息:

{X=0, Y={51329, 0}} {X=255, Y={210815, 0}}

我不知道这些其他点是从哪里来的。

感谢任何帮助/提示。 亲切的问候。

【问题讨论】:

  • 我想要一个附带的代码顺序;)
  • @500-InternalServerError foreach (KeyValuePair test in dict) { this.chart1.Series["Bytes"].Points.AddXY(test.Key, test.Value);这是我正在使用的所有代码,dict 是一个字典,其作为键字节值 0-255 当然只有图片中存在的那些,value 是图像中此值的频率。
  • 然后我们需要看看你是如何从图像中填充字典的。如果您在问题中发布完整的重现,这对每个人都更好。
  • @500-InternalServerError 我知道问题不在于我获取字典数据的方式,因为我将其写入控制台并发现字典中的唯一值都是(0 ,频率)和(255,频率)。我只是不明白为什么图表使这两个点从 0 - 100 和 155-255 交叉。只是想知道这是否是由 WinForms 中的图表工具中的某些设置引起的。
  • 请提供足够的代码,以便其他人更好地理解或重现问题。

标签: c# winforms image-processing histogram


【解决方案1】:

我决定从 0 到 255 循环,而不是仅仅在字典中添加点,在 dict (val) 中找到 key 并使用 (key, val) 创建一个点,如果不是在 dict 中添加一个点 (key, 0) .修复它:)

【讨论】:

  • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 1970-01-01
  • 2014-07-22
  • 1970-01-01
  • 1970-01-01
  • 2018-11-17
  • 1970-01-01
  • 2016-10-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多