2016-04-21 15 views
0

Wie erhält man alle Pixelpositionen (Koordinaten) entlang einer Linie zwischen zwei nichtlinearen Punkten P1 und P2?
Meine eigentliche Arbeit ist es, den Wert eines Pixels zwischen P1 und P2 zu ändern, das sich in einer bestimmten Entfernung von P1 befindet. Dazu muss ich alle Pixelkoordinaten kennen. Mit der LineIterator kann ich auf alle Pixelwerte zugreifen. Aber ich weiß nicht, wie man die Pixelkoordinaten erhält.
Kann mir jemand vorschlagen, wie man die Koordinaten bekommt ??Wie erhält man alle Pixelpositionen zwischen zwei nichtlinearen Punkten? Opencv

Antwort

0

cv::LineIterator Klasse ist documented gut.

Die Methode LineIterator::pos gibt die aktuelle Position im Bild zurück.

werfen Sie einen Blick auf dieses Beispielcode

#include <iostream> 
#include <opencv2/opencv.hpp> 

using namespace std; 
using namespace cv; 

int main(int, char** argv) 
{ 
    Mat img(400,400,CV_8UC3,Scalar(0,0,0)); 

    LineIterator it(img, Point(10,10), Point(200,200), 8); 

    for(int i = 0; i < it.count; i++, ++it) 
    { 
     Point pt= it.pos(); 
     circle(img,pt,2,Scalar(255,0,0)); 
    } 
    imshow("test",img); 
    waitKey(); 
} 
Verwandte Themen