相关疑难解决方法(0)

填写OpenCV中的漏洞

我在OpenCV(canny边缘检测)中从边缘检测模块中提取了边缘图.我想要做的是填补边缘图中的孔.

我正在使用C++OpenCV库.在OpenCV中有一个cvFloodFill()函数,它将用种子(其中一个位置开始泛滥)填充漏洞.但是,我试图在不知道种子的情况下填充所有内部空洞.(类似于MATLAB中的imfill())

Q1:如何查找所有种子,以便我可以应用'cvFloodFill()'?
Q2:如何实现'imfill()'等效?

OpenCV中的新手,任何提示都很受欢迎.

c++ matlab opencv image-processing flood-fill

33
推荐指数
4
解决办法
6万
查看次数

OpenCV关闭一个形状并填充它

我想输出一个蓝色的手,但得到不正确的输出.我已经包含输入图片,错误的输出图片和下面的代码.

我认为下面的代码不会填满整个图像,因为图像在右边界尚未关闭.

如何关闭形状并正确填充蓝色?

紧密的形状

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>
#include <stdio.h>
#include <stdlib.h>

using namespace cv;
using namespace std;

void drawStuff();
void showInputWindow();
void showCannyWindow();
void showContourWindow();

int thresh = 40;
int max_thresh = 120;
Mat img_rgb,img_gray,img_bw,canny_output,drawing;

int main(){
    img_rgb  = imread("qq.jpg");
    blur( img_rgb, img_rgb, Size(3,3) );
    cvtColor(img_rgb,img_gray,CV_RGB2GRAY);
    showInputWindow();

    drawStuff();
    cv::waitKey(0);
}

void drawStuff(){
    vector<vector<Point> > contours;
    vector<Vec4i> hierarchy;

    Canny( img_gray, canny_output, thresh, thresh*2, 3 );
    cv::dilate(canny_output, canny_output, cv::Mat(), cv::Point(-1,-1));
    showCannyWindow();

    findContours( canny_output, contours, hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, Point(0, …
Run Code Online (Sandbox Code Playgroud)

c++ opencv shape contour fill

12
推荐指数
1
解决办法
2万
查看次数

用opencv python填充轮廓

我有二进制图像与折线创建:

cv2.polylines(binaryImage,contours,1, (255,255,255))
Run Code Online (Sandbox Code Playgroud)

我现在需要的是填充所有折线的有效方法.我还没有在opencv中找到这样的方法,但也许它存在.或者,也许我可以实现算法来完成这项工作(但快速 - 我有高清就绪图片).请分享你的想法..

c++ python opencv image

10
推荐指数
2
解决办法
4万
查看次数

标签 统计

c++ ×3

opencv ×3

contour ×1

fill ×1

flood-fill ×1

image ×1

image-processing ×1

matlab ×1

python ×1

shape ×1