После того, как я сшил 2 изображения с помощью OpenCV C ++, я хочу обрезать изображение, чтобы удалить черную область вокруг сшитого изображения. Я потеряю часть изображения, но это нормально. изображение выглядит так:
Как я могу найти углы изображения и обрезать всю черную область ??
Если есть хорошие ссылки, пожалуйста, предоставьте мне некоторые из них.
С Уважением,
Я использовал этот фрагмент кода из руководства разработчика DJI (поиск в разделе «Обрезка панорамы»). https://dji-dev.gitbooks.io/mobile-sdk-tutorials/content/en/iOS/PanoDemo/PanoDemo_en.html#stitching-photos
На первый взгляд, алгоритм не выглядит очень надежным, но пока он оказался достаточно хорошим для моих сшиваемых сценариев использования. Тем не менее, я считаю, что код получил пару ошибок в этих двух строках
bool isBottomNotBlack=checkBlackRow(gray, roiRect.y+roiRect.height,roiRect);
bool isRightNotBlack=checkBlackColumn(gray, roiRect.x+roiRect.width,roiRect);
который должен быть изменен на
bool isBottomNotBlack=checkBlackRow(gray, roiRect.y+roiRect.height-1,roiRect);
bool isRightNotBlack=checkBlackColumn(gray, roiRect.x+roiRect.width-1,roiRect);
В противном случае вы можете получить ошибочную избыточную ошибку несистематического C.
Надеюсь, это поможет!
Других решений пока нет …