0

私は灰色の画像を持っています。画像からすべての行を読みたいです。

どうすればこのアルゴリズムを実行できますか?

誰でも私を助けることができます

私が使用しているコードがあります

 //#include "stdafx.h"
#include <stdio.h>
#include <cv.h>
#include <iostream>
#include <conio.h>
#include <cxcore.h>
#include  <opencv2/highgui/highgui.hpp>

#include <opencv2/imgproc/imgproc.hpp>

#include <stdlib.h>
using namespace cv;


Mat dst;       
void main()
{

cv::Mat img = cv::imread("capture.jpg",CV_LOAD_IMAGE_GRAYSCALE);

cv::Mat some_row = img.row(0); //gives 1st row


namedWindow( "source",CV_NORMAL);
 imshow( "source",img);
 namedWindow( "img",CV_NORMAL);
 imshow( "img",dst);
 waitKey(0);

画像から、色を並べ替えて、白、黒、最後、白、黒の順序を見つけることができるかどうかをテストするのが好きです。このため、行ごとに検索するのが好きです。あなたが私をより理解できる写真を共有できます。右側と左側から円を検出できるアルゴリズムを作成しましたが、それは機能します。画像から色のみを検索し、オブジェクトを検索しないコードが必要です (順番に色 (White.Black.White.Black)私が探している正しい位置を取得します)私たちは画像に示されています。https://drive.google.com/file/d/0B1WQBCaQu10geG1uTm40ZG9IVjQ/edit?usp=sharing

4

2 に答える 2

1

メソッドを使用できます.row()

cv::Mat img = cv::imread("some_path.jpg",CV_LOAD_IMAGE_GRAYSCALE);//some gray level image  

cv::Mat some_row = img.row(0); //gives 1st row

この方法では、元のマトリックスとデータが共有されることに注意してくださいimg。コピー操作が必要な場合は、.copyTo()メソッドを使用できます。

于 2013-11-07T11:46:20.497 に答える