Сегментация изображений с использованием OpenCV

Я довольно новичок в openCV и хотел бы немного помочь

Поэтому моей основной идеей было использовать opencv для создания небольшого приложения для дизайна интерьера.

проблема

Как провести различие между стенами и полом картины (даже если на изображении есть какой-то шум).

Напримервведите описание изображения здесь

Теперь моя идея заключалась в том, что если каким-то образом я смогу найти края стены или плитки, а затем, если какой-либо объект будет использоваться для внутренней отделки (например, любой стул), то этот объект будет идеально размещен над полом (т.е. два изображения смешиваются)

Мой подход

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv/cv.h>
using namespace cv;
using namespace std;
int main(){
Mat image=imread("/home/ayusun/Downloads/IMG_20140104_143443.jpg");
Mat resized_img,dst,contours,detected_edges;
resize(image, resized_img, Size(1024, 768), 0, 0, INTER_CUBIC);
threshold(resized_img, dst, 128, 255, CV_THRESH_BINARY);
//Canny(image,contours,10,350);

namedWindow("resized image");
imshow("resized image",resized_img);

//imshow("threshold",dst);
blur( resized_img, detected_edges, Size(2,2) );
imshow("blurred", detected_edges);

Canny(detected_edges,contours,10,350);
imshow("contour",contours);
waitKey(0);
return 1;
}

Я пробовал хитрый алгоритм обнаружения ребер, но, похоже, он нашел много ребер. И я до сих пор не знаю, как совместить пол комнаты с полом стула

Спасибо

3

Решение

Извините за непроизвольную рекламу, но IKEA использует приложение-каталог для смартфонов, которое использует дополненную реальность для позиционирования предметов / мебели вокруг изображения вашей комнаты. Это то, что вы пытаетесь сделать?

введите описание изображения здесь

Для этого вам понадобитсяопределить«, фиксированная точка, к которой можно привязать ваши объекты. Это обычно помогает различать стены и пол в приложении выше (и облегчает задачу).

Отличить стены от полов трудно даже человеку, если они висят у ног, а стены / полы имеют одинаковую текстуру (но нам удается это сделать благодаря нашему «чувство тяжести«).

Найдите некоторые ключевые точки или, пожалуйста, укажите, планируете ли вы делать это с фиксированной камерой (т.е. она никогда не будет размещена горизонтально)

1

Другие решения

ПОЗИЦИЯ OpenCV может быть полезна для вас (вот пример): http://opencv-users.1802565.n2.nabble.com/file/n6908580/main.cpp

Также взгляните на наборы дополненной реальности ArUco например.

Для продвинутых методов взгляните на ПТАМ.

И вы можете найти некоторые полезные ссылки и документы здесь: http://www.doc.ic.ac.uk/~ajd/

1

Сегментирование стен и полов по одному изображению возможно в некоторой степени, но требует большой работы, это потребует довольно сложной системы, если вы хотите добиться достойных результатов. Вы, вероятно, можете сделать намного лучше с парой изображений (стерео реконструкция)

1
По вопросам рекламы [email protected]