OpenCV PCL и Cmake - PullRequest
       5

OpenCV PCL и Cmake

0 голосов
/ 25 августа 2018

Я хочу использовать cmake для создания проекта о PCL и OpenCV.

При запуске проекта я обнаружил следующую ошибку:

LNK2038: обнаружено несоответствие для значения 'runtimelibrary' MTd_StaticDebug 'не совпадает с' MDd_DynamicDebug 'в main.obj

Я попытался исправить эту ошибку, зайдя в Свойства проекта (и / или библиотеки, которые вы используете), затем в C / C ++, затем Генерация кода и проверив значения библиотеки времени выполнения, но это не работа.

 #include <pcl/visualization/cloud_viewer.h>
 #include <iostream>
 #include <pcl/io/io.h>
 #include <pcl/io/pcd_io.h>
 #include <opencv2/opencv.hpp>
 int user_data;

 void viewerOneOff(pcl::visualization::PCLVisualizer& viewer)
{
viewer.setBackgroundColor(0.0, 0.0, 0.0);
}

void viewerPsycho(pcl::visualization::PCLVisualizer& viewer)
{
user_data = 9;
}

int main()
{
pcl::PointCloud<pcl::PointXYZRGB> cloud_a;
pcl::PointCloud<pcl::PointXYZRGB>::Ptr cloud(new   pcl::PointCloud<pcl::PointXYZRGB>);


cv::Mat image = cv::imread("person.jpg");

int rowNumber = image.rows;
int colNumber = image.cols;

cloud_a.width = rowNumber;
cloud_a.height = colNumber;
cloud_a.points.resize(cloud_a.width*cloud_a.height);

cv::Mat_<cv::Vec3b>::iterator it = image.begin<cv::Vec3b>();
cv::Mat_<cv::Vec3b>::iterator itend = image.end<cv::Vec3b>();

for (unsigned int i = 0; i<cloud_a.points.size(); ++i)
{
    cloud_a.points[i].x = 1024 * rand() / (RAND_MAX + 1.0f);
    cloud_a.points[i].y = 1024 * rand() / (RAND_MAX + 1.0f);
    cloud_a.points[i].z = 1024 * rand() / (RAND_MAX + 1.0f);

    cloud_a.points[i].r = (int)(*it)[2];
    cloud_a.points[i].g = (int)(*it)[1];
    cloud_a.points[i].b = (int)(*it)[0];

    ++it;
}

*cloud = cloud_a;

pcl::visualization::CloudViewer viewer("Cloud Viewer");

viewer.showCloud(cloud);

viewer.runOnVisualizationThreadOnce(viewerOneOff);

viewer.runOnVisualizationThread(viewerPsycho);

while (!viewer.wasStopped())
{
    user_data = 9;
}

return 0;
}
...