Я полный новичок, когда дело доходит до OpenCV, так что это, наверное, немой вопрос. .OpenCV: Рисование линий от Canny
Я просто пытаюсь получить что-то основное и running- я хочу обратить края, обнаруженные с помощью алгоритма Канни непосредственно на изображение приходит в настоящее время у меня это:
I 'm отображает данные о границах из Canny напрямую, но теперь я хочу избавиться от черного и просто показать белый цвет на обрабатываемом изображении.
Я пробовал такие вещи, как «использование бинарного изображения как альфа-маски», но после дня чтения учебников и попыток всего, что я могу найти, я все еще не уверен, что знаю, что происходит. OpenCV кажется очень мощным, поэтому, наверное, это довольно простая задача, поэтому я надеюсь, что кто-то может указать мне в правильном направлении.
Вот код, я использую, большинство из которых были скопированы из примеров:
public Mat onCameraFrame(CvCameraViewFrame inputFrame) {
Mat rgba = inputFrame.rgba();
org.opencv.core.Size sizeRgba = rgba.size();
Mat rgbaInnerWindow;
int rows = (int) sizeRgba.height;
int cols = (int) sizeRgba.width;
int left = cols/8;
int top = rows/8;
int width = cols * 3/4;
int height = rows * 3/4;
//get sub-image
rgbaInnerWindow = rgba.submat(top, top + height, left, left + width);
//create edgesMat from sub-image
Imgproc.Canny(rgbaInnerWindow, edgesMat, 100, 100);
//copy the edgesMat back into the sub-image
Imgproc.cvtColor(edgesMat, rgbaInnerWindow, Imgproc.COLOR_GRAY2BGRA, 4);
rgbaInnerWindow.release();
return rgba;
}
Edit: Я также отвечал на этот вопрос на форумах OpenCV here.
спасибо. Это сработало отлично! –