【问题标题】:How to add pixels in EmguCV如何在 EmguCV 中添加像素
【发布时间】:2013-05-08 20:16:03
【问题描述】:

您好,我正在使用 EmguCV,我喜欢使用它进行编程。

但是我想知道是否有一种优雅的方法可以单独添加两个像素。

添加图片,可以使用CvInvoke.Add(),但是对于单个像素的操作,好像要写的很丑,

假设你有 p、p1 和 p2 作为 EmguCV::Bgr,

你必须写

p = new Bgr(p1.b + p2.b, p1.g + p2.g, p1.r + p2.r);

我真的很讨厌这个,并试图为此编写一个运算符。但这显然是不可能的,因为运算符重载必须在宿主类中。

有什么方法可以优雅地做到这一点?

================编辑================

我想做的是计算图像中像素的总和。所以这里面的基本操作就是添加像素,或者Bgr类。

【问题讨论】:

  • 对您的一些观点进行一些澄清。如果你想要优雅的代码来添加两个图像,你可以使用已经为图像类 Image 定义的运算符重载 image3 = image1 + image2;根据您的要求,我只需向提供像素总和功能的类图像添加一个扩展方法?如果您关心性能,我可以建议您直接访问数据像素数组。
  • 请看更新。谢谢

标签: emgucv


【解决方案1】:

假设您有两张图片img1img2

  • 如果你想添加它们,你可以这样做img3 = img1+ img2
  • 如果您只是想要单个图像上每个颜色通道的总和img1,您可以这样做:

    Bgr sums = img1.GetSum();

    double TotalVal = sums.Blue + sums.Green + sums.Red;

希望这会有所帮助,

卢卡

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2013-07-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-22
  • 1970-01-01
  • 1970-01-01
  • 2010-12-13
相关资源
最近更新 更多