【问题标题】:Image Segmentation using OpenCV使用 OpenCV 进行图像分割
【发布时间】:2014-01-04 11:56:40
【问题描述】:

我是 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;
}

我尝试了canny边缘检测算法,但似乎发现了很多边缘。而且我还是不知道怎么把房间的地板和椅子的地板结合起来

谢谢

【问题讨论】:

    标签: c++ opencv image-processing edge-detection


    【解决方案1】:

    对于非自愿的广告,我们深表歉意,但宜家使用了一款目录智能手机应用程序,该应用程序使用增强现实技术将物品/家具定位在您房间的图像周围。这就是你想要做的吗?

    为了实现这一点,您需要一个“pinpoint”,一个将对象挂到的固定点。这通常有助于在上面的应用中区分墙壁和地板(并使事情变得简单)。

    即使对于人类来说,将墙壁与地板区分开来也很困难,如果它们是挂在他们的脚上并且墙壁/地板上的纹理相同(但我们能够做到这一点,这要归功于我们的“重力感觉”)。

    找到一些关键点,或者请说明您是否打算使用固定相机(即永远不会水平放置)

    【讨论】:

    • 对不起,我没有得到固定的相机部分。以及墙壁和地板具有不同纹理的情况。就像我的情况一样,地板和墙壁有不同的纹理。可以说,我总是考虑这种情况,底部纹理是地板,上面的纹理是墙壁对不起一个模糊的问题,但我对 opencv 和增强现实知之甚少
    • 我不是专家,顺便说一下,如果你有不同的纹理,那就是另一回事了:如果你的纹理很容易识别(例如某种图案,看看棋盘样本openCV)然后你可以在没有任何边界检测的情况下区分它们(或者在你检测到它们之后再做)
    【解决方案2】:

    OpenCV 的 POSIT 可能对你有用(这里是一个例子):http://opencv-users.1802565.n2.nabble.com/file/n6908580/main.cpp

    例如,还可以查看增强现实工具包ArUco

    有关高级方法,请查看ptam

    你可以在这里找到一些有用的链接和论文:http://www.doc.ic.ac.uk/~ajd/

    【讨论】:

      【解决方案3】:

      从单个图像中分割墙壁和地板在某种程度上是可能的,但需要大量工作,如果您想获得不错的结果,这将需要相当复杂的系统。使用一对图像(立体重建)可能会做得更好

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-11
        • 2016-08-17
        • 2013-04-10
        • 1970-01-01
        • 2016-07-23
        • 2012-12-16
        相关资源
        最近更新 更多