diff options
Diffstat (limited to 'client2.c')
-rw-r--r-- | client2.c | 39 |
1 files changed, 37 insertions, 2 deletions
@@ -44,10 +44,29 @@ int main(int argc, const char** argv) if (connect(sockfd, (struct sockaddr*) &my_sockaddr, sockaddrlen) == -1) die("connect"); - + + Mat camera_matrix = Mat::eye(3,3,CV_32FC1); + camera_matrix.at<float>(0,0)=1000; + camera_matrix.at<float>(1,1)=1000; + camera_matrix.at<float>(0,2)=800; + camera_matrix.at<float>(1,2)=300; + Mat map1[3], map2[3]; + for (int i=0; i<3; i++) + { + Mat camera_matrix_clone = camera_matrix.clone(); + camera_matrix_clone.at<float>(0,0)*=(1.+i/100.); + camera_matrix_clone.at<float>(1,1)*=(1.+i/100.); + initUndistortRectifyMap(camera_matrix, Vec4f(0.5,0.1,0,0), Mat::eye(3,3,CV_32F), camera_matrix_clone, Size(1600,600), CV_32FC1, map1[i], map2[i]); + } + printf("GO!!\n"); time_t t = time(NULL); int nframes=0; + write(sockfd,"get\n",4); + read_completely(sockfd, buffer, 4); + int framelen = ((buffer[0]*256+buffer[1])*256+buffer[2])*256+buffer[3]; + if (framelen > sizeof(buffer)) suicide("buffer too small"); + read_completely(sockfd, buffer, framelen); while (waitKey(1) != 'x') { write(sockfd,"get\n",4); @@ -58,7 +77,23 @@ int main(int argc, const char** argv) //Mat dingens=Mat::eye(100,100,CV_8UC1) * 244; Mat dingens(600,1600,CV_8UC3, buffer); - imshow("dingens",dingens); + for (int i=0; i< 1600; i+=50) + dingens.col(i)=Vec3b(255,192,128); + for (int i=0; i< 600; i+=50) + dingens.row(i)=Vec3b(255,192,128); + Mat zeuch; + //remap(dingens, zeuch, map1, map2, INTER_LINEAR); + + Mat colors[3]; + Mat colors2[3]; + split(dingens, colors); + + for (int i=0; i<3; i++) + remap(colors[i], colors2[i], map1[i], map2[i], INTER_LINEAR); + + merge(colors2, 3, zeuch); + + imshow("dingens",zeuch); time_t tmp = time(NULL); if (tmp!=t) |