비슷한 질문을했지만 여전히 붙어 있습니다.RGBDemo에 대한 마우스 위치 좌표 가져 오기
kinect를 사용하여 재구성 된 3D 장면을 클릭하면 마우스의 x, yz 좌표를 줄 수있는 작은 코드 섹션을 작성하려고합니다. 내 목표는 로봇 팔을위한 '이동'기능을 만드는 것입니다.
윈도우 프레임에서 마우스 xy 위치를 찾은 다음 장면의 프레임이되기 전에 화면의 프레임으로 변환해야한다고 생각합니다. 이게 옳은 거니? 또한 픽셀에서 깊이 값을 읽는 방법을 알아낼 수 없습니까?
저는 Visual Studio 및 C++ 프로그래밍에 처음으로 익숙하며 정확한 코드를 작성하기 위해 애 쓰고 있습니다. 새로운 클래스를 만들어서 포함시켜야하는지 아니면 뷰어 프로젝트에 직접 삽입할지 여부는 확실하지 않습니다.
다음은 작성한 내용이지만 변경해야 할 부분입니다.
도움을 주시면 감사하겠습니다. 토비
void get_point_position_MOUSE(int event, int x, int y, int flags,
void* depthMapZ) {
if (CV_EVENT_LBUTTONDOWN == event) {
if (DISP_IMAGE_DEPTH != IPL_DEPTH_32F) {
write_on_buffer(
g_strdup_printf(
"This only supports IPL_DEPTH_32F images.\n"));
return;
}
if (selectionMode != POINT_SEL_MODE_MOUSE) {
write_on_buffer(g_strdup_printf("X: %f Y: %f\n", (float) x,
(float) y));
CvPoint3D32f points = getWorldCo_Ords((float) x, (float) y,
(float) CV_IMAGE_ELEM((IplImage*) disparityMap, int, y, x));
write_on_buffer(g_strdup_printf("X: %f Y: %f Z: %f\n", points.x,
points.y,
(float) CV_IMAGE_ELEM((IplImage*) disparityMap, int, y, x)));
return;
}