私は2つの画像でfindContoursを試しました。実際、彼らは1つです。 、findContoursは "同じ"画像に対して別個の結果を返します
#include "cv.h"
#include "highgui.h"
#include "iostream"
using namespace cv;
using namespace std;
char* org_file = "expmap_1.bmp"; //"expmap.jpg"; // "pic1.png";
int main(int argc, char** argv)
{
Mat src;
// the first command line parameter must be file name of binary
// (black-n-white) image
src = imread(org_file, 0); // both are read in binary form
Mat dst = Mat::zeros(src.rows, src.cols, CV_8UC3);
// src = src > 1;
namedWindow("Source", 1);
imshow("Source", src);
vector<vector<Point> > contours;
vector<Vec4i> hierarchy;
findContours(src, contours, hierarchy,
CV_RETR_LIST , CV_CHAIN_APPROX_SIMPLE);
// iterate through all the top-level contours,
// draw each connected component with its own random color
cout << contours.size() << endl;
int idx = 0;
for(; idx >= 0; idx = hierarchy[idx][0])
{
// Scalar color(rand()&255, rand()&255, rand()&255);
//Scalar color(255,255,255);
drawContours(dst, contours, idx, RGB(0,0,255), 1, 8, hierarchy);
}
namedWindow("Components", 1);
imshow("Components", dst);
waitKey(0);
}
コマンドは、正しい結果を与えるモノクロ画像で動作: - 一つは、他のMSペイント(BMPモノクロ画像にエクスポート)によって色いずれかから作成され、カラー画像(JPG)であります他方は画像フレームである1つの等高線のみを返す。
2つのケースに違いはありますか? **色1を::私が使用
写真 http://imageshack.us/photo/my-images/440/picture73q.jpg/
**ビットマップ1: http://imageshack.us/photo/my-images/16/picture73l.png/
あなたは、彼らが、種類が異なるだけ同じであることがわかります(カラー/モノクロ)私はOpenCVコードでも変換しました。
私は周りに来て、まだこの
PSでスタックしている:誰もが右ポストにアップロード画像を表示するために私を助け?ヘルプをクリックする必要はありません。
イメージを提供できますか? – dom
ここで画像をアップロードする方法はわかりません。基本的には、2つの画像が同じで、屋内画像にはいくつかの障害があります。 1つは色のjpg、もう1つはモノクロームで作られた –
の画像をimageshack.usにアップロードし、ここにリンクを提供することができます。それは単純だ。 –