hallo,
ich bin kein Profi-Programmierer und habe jetzt eine Aufgabe, ich habe ein Frame und darauf sind reflektierende Kugelmarkern! Ich soll die Markern automatisch erkennen! an Hand der Helligkeit kann ich die Punkte von den Markern teilweiser erkennen, aber ich brauche die ganze Kugel zu haben!!! zum Visualisierung benutze ich VTK und ihre Funktionen und Programierumgebung ist VisualStudio 6.0!
kann jemand mir was verraten? ich komme nicht weiter!! :(
Grüße
Chakhi
Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge
hi,
also ich versuche das Problem besser zu beschreiben: ich habe ein abgescanntrs Model und darau sin Kugeln, die Kugeln reflektiren! das Model wird als ein Polygon gelesen und ich habe alle Farbwerte und auch x-, y- und z-Koordinaten von den Punkten! Ich habe jetzt auch die Breiche gefunden, wo die Kugelen sind! also ich habe jetzt das Bild dunkel gemacht und nur die hellen bereichen von den Kugeln sind zu sehen! aber das sind keine Kreise sindern Halbkreise (eigentlich Halbkugel)
Auf meinem Bild habe ich jetzt 3 Verschidene Mengen von diesem Pnktwolken und möchte gerne jetzt die Kugelen ganz regenerieren anhand der sichtbaren Punkten!
Radius von meiner Kugel ist auch bekannt, 1cm!
hier lese ich die Punkte und finde die Punktwolken die den Kugeln gehören:
.
.
.
union bildpunkt
{
unsigned long p;
unsigned char b[4];
};
bildpunkt pixel;
for (long int i = 0; i width * cam3d->height; i++)//das gesamte bild
{
if (cam3d->vtx[i].position.x == INVALID_DATA_3D)
{
/* an dieser xy Position keine z Tiefeninfo gemessen */
}
else
{
// KOORDINATE
punkt[0]=cam3d->vtx[i].position.x;
punkt[1]=cam3d->vtx[i].position.y;
punkt[2]=cam3d->vtx[i].position.z;
punkte->InsertPoint(pkt_id,punkt[0],punkt[1],punkt[2]);
// FARBWERT
pixel.p = c_image->pixels[i]; /*Alternativ: punktanzahl-i*/
r=pixel.b[3];
g=pixel.b[2];
b=pixel.b[1];
a=255;
// std::cout if ((r {
color->InsertTuple1(pkt_id,1);
}
else
{
//.... hier müssen die hellen Punkten bearbeitet werden!
}
}
pkt_id++;
}
}