Ответ 1
cv::Mat src=imload("bla.png");
cv::Mat dst; // dst must be a different Mat
cv::flip(src, dst, 1); // because you can't flip in-place (leads to segfault)
Я работаю над проектом видео обработки, который нуждается в перевертывании кадра. Я попытался использовать cvFlip, но, похоже, не перевернулся вдоль оси y (работа оси x...) и приводит к ошибке сегментации. Есть ли другой вариант?
cv::Mat dst=src; //src= source image from cam
cv::flip(dst, dst, 1); //segmentation fault shown
imshow("flipped",dst);
cv::Mat src=imload("bla.png");
cv::Mat dst; // dst must be a different Mat
cv::flip(src, dst, 1); // because you can't flip in-place (leads to segfault)
Используйте cv::flip
и передайте 1
как flipcode
.
Глядя на ваше редактирование с помощью примера кода, вы не можете щелкнуть на месте. Вам нужен отдельный пункт назначения cv::Mat
:
cv::Mat dst;
cv::flip(src, dst, 1);
imshow("flipped",dst);
Ключ должен создать dst
точно так же, как src
:
cv::Mat dst = cv::Mat(src.rows, src.cols, CV_8UC3);
cv::flip(src, dst, 1);
imshow("flipped", dst);