при попытке выполнить некоторые бинарные манипуляции с одним и тем же файлом изображения, но на разных компьютерах (&мониторах), я получаю другой результат при использовании метода CvInvoke.Canny()
.
перед вызовом этого метода я использую несколько методов манипулирования, таких как: CvInvoke.Threshold()
, CvInvoke.Erode()
, CvInvoke.Dilate()
и многое другое... результат всех этих действий всегда равен.
это просто когда я вызываю:
UMat inputImageUMAT = new Image<Gray, byte>(inputImageBitmap).ToUMat();
UMat imageUmat = new UMat();
CvInvoke.Threshold(imageInputUMAT, imageUmat, threshold, 255,
Emgu.CV.CvEnum.ThresholdType.Binary);
// clear noises with Erode & Dilate:
CvInvoke.Erode(imageUmat, imageUmat, null, new Point(-1, -1), 1,
BorderType.Constant, CvInvoke.MorphologyDefaultBorderValue);
CvInvoke.Dilate(imageUmat, imageUmat, null, new Point(-1, -1), 1,
BorderType.Constant, CvInvoke.MorphologyDefaultBorderValue);
//use image pyr to remove noise:
UMat pyrDown = new UMat();
CvInvoke.PyrDown(imageUmat, pyrDown);
CvInvoke.PyrUp(pyrDown, imageUmat);
// set cannyEdges to hold the outlines of the shapes detected in the image
(according to threshold)
UMat cannyEdges = new UMat();
CvInvoke.Canny(imageUmat, cannyEdges, threshold, threshold);
между выходными данными разных компьютеров всегда есть разница.
тем не менее, каждый компьютер всегда дает один и тот же результат - раз за разом.
что может быть причиной проблемы?
у меня должны быть одинаковые результаты везде...
p.s.
я использую слепок C#: EMGU.CV v3.3.0.2824
редактировать:
я взял исходный файл: оригинал
и пропустил все манипуляции в пути и сразу выполнил Canny
:
UMat inputImageUMAT = new UMat(fileName, ImreadModes.Grayscale);
UMat cannyEdges = new UMat();
CvInvoke.Canny(imageInputUMAT, cannyEdges, threshold, threshold, 3, true);
cannyEdges.Save(outputFileName);
результат с порогом 210 машина 1: result_1
результат с порогом 210 машина 2: result_2
-- разница в 1 пиксель между двумя результатами
CvInvoke.Canny(imageUmat, cannyEdges, threshold, threshold, 3 , true);
- разница все еще есть. - person RedHat   schedule 04.02.2018jpg
, только форматы без потерь) и показать нам 2 изображения с разницей? - person Dmitrii Z.   schedule 04.02.2018beyond compare
. я не знаю, как загрузить разные файлы, но я проверю это. - person RedHat   schedule 04.02.2018Canny
и передайте результат вCanny
на 2 машинах, сохраните вывод как изображение и поместите их в свой вопрос. - person Dmitrii Z.   schedule 04.02.2018