我有一个灰色的图像,我想从图像中读取每一行。

我该怎么做这个算法?

谁能帮我

我正在使用的代码

 //#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

最佳答案

我建议您阅读scanning images上的opencv教程。您还应该看看documentation for the Mat class

有多种方法可以满足您的需求。不同的方法具有不同的效率和安全性折衷。更有效的方法直接与指针一起使用。这是快速的,但是您必须注意正确执行指针算术,具体取决于图像可能已存储在内存中的像素,通道和填充的数量。

另一方面,使用迭代器甚至像Mat::at之类的方法更安全,因为这些计算是为您进行的。但这并不那么有效。

查看文档,然后选择适合您问题的内容。希望能有所帮助。

关于c++ - 我如何逐行读取greyimage opencv c++,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19834417/

10-11 19:09