这是我的一次。 Turbo C++是真正的古代。我得到了一个圆圈的中心问题,我写了一个程序来显示质心的坐标,但显示屏显示了我--NAN,而不是数字。请咨询,thnx。获得圆圈的中心Turbo C++
unsigned char *p = rgbImage; //rbgImage = new unsigned char [ 160 * 120 * 4 ]
unsigned char *q = image; //image = new unsigned char [ 160 * 120 * 1 ]
int n = 0;
float LaserX = 0, LaserY = 0;
char* LaserMID = new char[255];
for(int j = 0; j < 120; j++) {
for(int i = 0; i < 160; i++) {
*q++ = *p++;
if (*q >= Thrshld) {
LaserX += j;
LaserY += i;
n = n + 1;
}
}
}
LaserX = LaserX/n;
LaserY = LaserY/n;
sprintf(LaserMID, "%.1f, %.1f", LaserX, LaserY);
ShowCo->Text = LaserMID;
你是如何表示该圆的? –
请注意,如果rgbImage的每像素为4Bytes,那么您应该每次将p增加4,否则复制到q时您将遍历每个颜色通道,这将只复制图像的四分之一。此外,您应该对rgb频道进行平均以获得灰度值。 – Nobody
@Pollano,圆圈是我的相机发现的一个点。 – Chang