gpt4 book ai didi

image-processing - OpenCV:大约。从轮廓图像分割

转载 作者:太空宇宙 更新时间:2023-11-03 21:09:23 25 4
gpt4 key购买 nike

我正在尝试找到一种方法来对墓 map 像进行近似分割(在文化科学中的 CBIR 背景下 - 但这不是主题)。到目前为止,我正在使用这个策略:

  • 模糊图像两次(实验结果)
  • 应用 Canny 边缘检测器
  • 寻找轮廓

    int main(int argc, const char* argv[]) {

    cout << "Starting " << endl;
    Mat sourceImage;
    sourceImage = imread("singlesegmentation/DSCN5204.JPG",
    CV_LOAD_IMAGE_COLOR);

    if (!sourceImage.data) {
    cout << "No Image found." << endl;
    return -1;
    }

    cv::Mat blurred = imagePro::blurrNtimes(2, sourceImage);
    cv::Mat target = edged::applyCanny(blurred);
    cout << "Canny applied " << endl;

    vector<vector<Point> > contours;
    vector<Vec4i> hierarchy;
    cv::Point offset;
    offset.x = sourceImage.rows / 2;
    offset.y = sourceImage.cols / 2;
    cv::findContours(target, contours, hierarchy, CV_RETR_TREE ,
    CV_CHAIN_APPROX_SIMPLE, offset);
    cout << "Contours applied " << endl;

    int idx = 0;
    for (; idx >= 0; idx = hierarchy[idx][0]) {
    Scalar color(rand() & 255, rand() & 255, rand() & 255);
    drawContours(target, contours, idx, color, CV_FILLED, 8, hierarchy);
    }
    cout << "Lines applied " << endl;

    cv::namedWindow("Contour", CV_WINDOW_NORMAL);
    cv::imshow("Contour", target);
    cv::waitKey(0);

    return 0;

命名空间“imagePro”和“edged”包含简单的 opencv 代码,用于模糊图像并进一步处理它。该代码有效。这是一个示例图片: Contour-Image of Gravestone但是现在我不知道要分割图像。我想从长方形石头的内部到外部,当我找到一条线时,我想记住坐标然后切割内容。如果您有想法或提示,谢谢!

最佳答案

您可以尝试使用霍夫变换 (cv::HoughLinesP) 查看教程示例 http://docs.opencv.org/modules/imgproc/doc/feature_detection.html

为了找到石头在图片中的坐标,您需要计算通过霍夫变换找到的直线的交点。对于类似的用例,我使用了高斯模糊,然后是拉普拉斯变换(而不是 canny-edge)。

关于image-processing - OpenCV:大约。从轮廓图像分割,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13741825/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com