ter_nk
Пользователи-
Количество публикаций
90 -
Зарегистрирован
-
Посещение
Все публикации пользователя ter_nk
-
есть функция imencode, даже пример нашел vector<uchar> buf; Mat matImage = iplImage; imencode(".bmp", matImage, buf); size = buf.size(); copy(buf.begin(), buf.end(), byteArray);
-
Прошу прощения! Написал CV_8UC3 а надо CV_8UC1
-
Бинаризирую изображение на черном фоне, с небольшими помехами получается что-то белое на черном фоне, определяю контур так Canny(mat_source, canny_output, 10, 240, 3); /// Find contours findContours(canny_output, contours, hierarchy, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_SIMPLE, Point(0, 0)); У меня получается один нужный контур, но когда фотографируемый предмет вылезает за рамки снимка, то получается много контуров, маленьких по площади, как получить один большой и у обрезованного предмета, как бы обрезав контур по границе, которую он пересекает? Спасибо.
-
Там была ошибка алгоритма предварительной бинаризации, сейчас исправляю.
-
Спасибо, тоже вариант как обойти, хотя урезать изображение конечно не очень хочется.
-
По идеи можно создать изображение по длине на 20 пикселей по ширене и высоте больше, с черным фоном, скопировать туда изображение по себедине, т.е. + 10 пикс по х и у , только не знаю как это сделать в opencv
-
Не понял, как вывести перед canny черный прямоугольник?
-
собственно вопрос, может пример работающий
-
Спасибо!
-
Или хотя бы как пиксели RGB с мат получить
-
добрый день! Делаю изображение серым, потом бинаризирую, чтоб выделить нужный контур cvCvtColor(image, gray, CV_RGB2GRAY); cvInRangeS(gray, cvScalar(5), cvScalar(160), bin); на черном фоне прямоугольник разноцветный, он выделяется сам по себе лучше при бинаризации, но у меня еще появляется много мелких контуров, которые мне мешают, как можно отфильтровать все мелкие белые поля, а оставить один мой крупный прямоугольник? Спасибо.
-
В смысле? Так вообще использовать все cv:: ?
-
Спасибо за ответ! Попробую. После того как создал тему, поменял параметры скаляра cvInRangeS(gray, cvScalar(20), cvScalar(254), bin); с такими значениями получил то, что хотел, но как я понимаю, это не совсем выход из ситуации, или их подстраивать программно, пока возвращаемое значение cvFindContours не станет равно 1, но тоже не вариант. Переделать на С++ интерфейс да, там время только понадобится, входные параметры то несколько иные. Кстати я думал, что cvCtvColor это С++ интерфейс, все что cv:: - это С++ ?