小编Dav*_*sen的帖子

FindContours如何在图像中循环?OpenCV 2.3

我们正在编写一个程序,它从网络摄像头获取输入,减去除绿色值之外的所有颜色,找到分离的BLOB并对它们进行计算.最终,这将被用作视频游戏的输入,但现在这是无关紧要的.

有问题的代码不是实际执行所有这些操作的代码,而是代码的重写段,用于测试FindContours实际工作方式.通常,通过图像处理,我们一直认为图像是从左上角到右下角读取的,但经过一些测试后,似乎它完全相反,从右下角开始向左上方移动!

所以这里的问题是:FindContours以哪种顺序找到它的轮廓?我是正确的,还是我自己的代码让我感到困惑?

输入:Blobtest06

"组件"窗口

安慰

#include <opencv2/opencv.hpp>
#include <iostream>
#include <opencv2/core/mat.hpp>
#include <Windows.h> //for sleep function

using namespace cv;
using namespace std;

void IsolateGreen(Mat mIn, Mat& mOut)
{
Mat inImg (mIn.rows, mIn.cols, CV_8UC3, Scalar(1,2,3));
inImg.data = mIn.data;
Mat channelRed (inImg.rows, inImg.cols, CV_8UC1);
Mat channelGreen (inImg.rows, inImg.cols, CV_8UC1);
Mat channelBlue (inImg.rows, inImg.cols, CV_8UC1);
Mat outImg[] = {channelRed, channelGreen, channelBlue};

int fromTo[] = { 0,2, 1,1, 2,0};
mixChannels( &inImg, 1, outImg, 3, fromTo, 3);

mOut = (channelGreen) - (channelRed + …
Run Code Online (Sandbox Code Playgroud)

c++ opencv image-processing visual-studio-2010

3
推荐指数
1
解决办法
5273
查看次数