Я использую библиотеку OpenCvSharp в C# для выполнения вычислений, связанных с OpenCV.
Учитывая некоторые изображения, я хочу сложить их аналогично в этом учебном пособии , затем подсчитать ненулевые пиксели в кадрах и результирующее изображение. Эти числа будут использоваться для обнаружения перекрытия и определения другого значения.
Я получил 3 изображения, кадр 0, кадр 1 и результат:
Содержимое результирующего изображения действительно является кадром 0 + кадр 1, в данном случае без наложения чего-либо, так что число ненулевых пикселей должно удовлетворять c_r = c_f0 + c_f1, где c_f0 = 356, c_f1 = 362 К сожалению, вычисленное значение c_r равно 530. В чем может быть причина?
Я использую тот же метод, чтобы показывать, сохранять, вычислять значения на изображениях:
Cv2.CvtColor(inputImage, gray, ColorConversionCodes.RGB2GRAY);
var pixels = Cv2.CountNonZero(gray);
Console.WriteLine(pixels);
Cv2.ImWrite(fileName, gray);
Cv2.ImShow("i", gray);
Cv2.WaitKey();
Начиная с gray
является вновь созданным изображением, не может быть проблем с его базовой ссылкой (в противном случае я не смогу увидеть / сохранить реальные изображения). Почему Cv2.CountNonZero(gray);
дал бы мне такой результат?