運行完以下程式點云出不來,不管輸入什么,輸出的都是這個


#include <pcl/visualization/cloud_viewer.h>
#include <iostream>
#include <pcl/io/io.h>
#include <pcl/io/pcd_io.h>
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
using namespace pcl;
int user_data;
//相機內參,根據輸入改動
const double u0 = 1329.49 / 4;//由于后面resize成原圖的1/4所以有些引數要縮小相同倍數
const double v0 = 954.485 / 4;
const double fx = 6872.874 / 4;
const double fy = 6872.874 / 4;
const double Tx = 174.724;
const double doffs = 293.97 / 4;
void viewerOneOff(visualization::PCLVisualizer& viewer)
{
//viewer.setBackgroundColor(0.0, 0.0, 0.0);
viewer.setBackgroundColor(1, 1, 1);
}
int main()
{
PointCloud<PointXYZRGB> cloud_a;
PointCloud<PointXYZRGB>::Ptr cloud(new PointCloud<PointXYZRGB>);
Mat color1 = imread("im0.png");
Mat depth = imread("Sword1_perfect_d.png");
////Resize
//color1.resize();
Mat color;
resize(color1, color, Size(color1.cols/4,color1.rows/4), 0, 0, CV_INTER_LINEAR);
//imshow("h",color);
//waitKey(0);
int rowNumber = color.rows;
int colNumber = color.cols;
cloud_a.height = rowNumber;
cloud_a.width = colNumber;
cloud_a.points.resize(cloud_a.width * cloud_a.height);
for (unsigned int u = 0; u < rowNumber; ++u)
{
for (unsigned int v = 0; v < colNumber; ++v)
{
/*unsigned int num = rowNumber*colNumber-(u*colNumber + v)-1;*/
unsigned int num = u*colNumber + v;
double Xw = 0, Yw = 0, Zw = 0;
Zw = fx*Tx / (((double)depth.at<Vec3b>(u, v)[0]) + doffs);
Xw = (v+1 - u0) * Zw / fx;
Yw = (u+1 - v0) * Zw / fy;
cloud_a.points[num].b = color.at<Vec3b>(u, v)[0];
cloud_a.points[num].g = color.at<Vec3b>(u, v)[1];
cloud_a.points[num].r = color.at<Vec3b>(u, v)[2];
cloud_a.points[num].x = Xw;
cloud_a.points[num].y = Yw;
cloud_a.points[num].z = Zw;
}
}
*cloud = cloud_a;
visualization::CloudViewer viewer("Cloud Viewer");
viewer.showCloud(cloud);
viewer.runOnVisualizationThreadOnce(viewerOneOff);
while (!viewer.wasStopped())
{
user_data = 9;
}
return 0;
system("pause");
}
uj5u.com熱心網友回復:
動一下滑鼠滾輪~uj5u.com熱心網友回復:
按鍵盤R鍵就可以了。uj5u.com熱心網友回復:
我也有這個問題,請問樓主找到解決辦法了嗎轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/113096.html
標籤:工具平臺和程序庫
下一篇:VS2013 Opencv opencv_contrib-3.1.0編譯出錯 error MSB6006: “cmd.exe”已退出,代碼為 -10737415
