【发布时间】:2014-10-16 06:59:51
【问题描述】:
我想使用 Emgu 获取图像的直方图。
我有一个灰度双图像
Image<Gray, double> Crop;
我可以得到一个直方图使用
Image<Gray, byte> CropByte = Crop.Convert<Gray, byte>();
DenseHistogram hist = new DenseHistogram(BinCount, new RangeF(0.0f, 255.0f));
hist.Calculate<Byte>(new Image<Gray, byte>[] { CropByte }, true, null);
问题是,这样做我需要转换为字节图像。这是有问题的,因为它扭曲了我的结果。如果可以使用双图像,这会给出与我得到的结果略有不同的直方图。
我已经尝试使用 CvInvoke 来使用内部 opencv 函数来计算直方图。
IntPtr[] x = { Crop };
DenseHistogram cropHist = new DenseHistogram
(
BinCount,
new RangeF
(
MinCrop,
MaxCrop
)
);
CvInvoke.cvCalcArrHist(x, cropHist, false, IntPtr.Zero);
问题是我很难找到正确使用这个功能的方法
emgu/opencv 允许我这样做吗?我需要自己编写函数吗?
【问题讨论】: