Sono estremamente nuovo alla visione artificiale e alla libreria opencv.Crea stuoia dal vettore <point2f>
Ho fatto qualche ricerca su google per cercare di trovare come creare una nuova immagine da un vettore di Point2fs e non ho trovato alcun esempio che funzioni. Ho visto vector<Point>
to Mat
ma quando uso quegli esempi ottengo sempre errori.
Sto lavorando dall'esempio this e qualsiasi aiuto sarebbe apprezzato.
Codice: I pass in OccludedSquare.
resize(occludedSquare, occludedSquare, Size(0, 0), 0.5, 0.5);
Mat occludedSquare8u;
cvtColor(occludedSquare, occludedSquare8u, CV_BGR2GRAY);
//convert to a binary image. pixel values greater than 200 turn to white. otherwize black
Mat thresh;
threshold(occludedSquare8u, thresh, 170.0, 255.0, THRESH_BINARY);
GaussianBlur(thresh, thresh, Size(7, 7), 2.0, 2.0);
//Do edge detection
Mat edges;
Canny(thresh, edges, 45.0, 160.0, 3);
//Do straight line detection
vector<Vec2f> lines;
HoughLines(edges, lines, 1.5, CV_PI/180, 50, 0, 0);
//imshow("thresholded", edges);
cout << "Detected " << lines.size() << " lines." << endl;
// compute the intersection from the lines detected...
vector<Point2f> intersections;
for(size_t i = 0; i < lines.size(); i++)
{
for(size_t j = 0; j < lines.size(); j++)
{
Vec2f line1 = lines[i];
Vec2f line2 = lines[j];
if(acceptLinePair(line1, line2, CV_PI/32))
{
Point2f intersection = computeIntersect(line1, line2);
intersections.push_back(intersection);
}
}
}
if(intersections.size() > 0)
{
vector<Point2f>::iterator i;
for(i = intersections.begin(); i != intersections.end(); ++i)
{
cout << "Intersection is " << i->x << ", " << i->y << endl;
circle(occludedSquare8u, *i, 1, Scalar(0, 255, 0), 3);
}
}
//Make new matrix bounded by the intersections
...
imshow("localized", localized);
voglio prendere i punti che devo creare un ROI e da lì creare una nuova matrice. È più chiaro? Non sono veramente sicuro di quale sia la differenza tra fare una Mat di punti e disegnare punti in una matrice. – myselfesteem