我安装了PCL1.7.2.我正在尝试使用PCL库.
我想通过"const"显示相机的参数,所以,我想得到相机的参数.但我不明白如何获取相机的参数.
我看到了"pcl :: visualization :: Camera Class Reference". http://docs.pointclouds.org/trunk/classpcl_1_1visualization_1_1_camera.html
我知道"相机"对象上有焦点,位置,视图等.
现在我已确认以下代码运行.
但我无法理解如何获得Camera的成员.这是设置Camera的成员值的方法.viewer.setCameraPosition(pos_x,pos_y,pos_z,view_x,view_y,view_z,up_x,up_y,up_z,viewport);
所以,有人请告诉我如何使用以下代码获取Camera的参数.
这是现在的道路来源.
#include "stdafx.h"
#include <pcl/visualization/cloud_viewer.h>
#include <iostream>
#include <pcl/io/io.h>
#include <pcl/io/pcd_io.h>
int user_data=0;
void
viewerOneOff(pcl::visualization::PCLVisualizer& viewer)
{
viewer.setBackgroundColor(1.0, 0.5, 1.0);
pcl::PointXYZ o;
o.x = 1.0;
o.y = 0;
o.z = 0;
viewer.addSphere(o, 0.25, "sphere", 0);
std::cout << "i only run once" << std::endl;
}
void
viewerPsycho(pcl::visualization::PCLVisualizer& viewer)
{
static unsigned count = 0;
std::stringstream ss;
ss << "Once per viewer loop: " << count++;
viewer.removeShape("text", 0); …Run Code Online (Sandbox Code Playgroud) 我是一个刚刚开始CUDA编程的人.
似乎有SP SM和CUDA架构的概念.
我试着运行样本源的deviceQuery.cpp我觉得它们的环境
有什么作用和SP SM开发,它已经变得不知道哪个项目SP是否是SM中的任何项目.
我认为项目"(14)多处理器,(8)CUDA核心/ MP"并且对SP和SM都是正确的,但我会正确理解以下内容?
SM =多处理器= 14
SP = CUDA核心/ MP = 8
CUDA核心= 14*8 = 112
顺便说一下,deviceQuery.cpp的结果如下.
CUDA设备查询(运行时API)版本(CUDART静态链接)
检测到1个CUDA功能设备
设备0:"GeForce GTS 240
CUDA驱动程序版本/运行时版本5.5/5.5
CUDA功能主要/次要版本号:1.1
全局内存总量:1024 MBytes(1073741824字节)
(14)多处理器,(8)CUDA内核/ MP: 112 CUDA核心
GPU时钟频率:1620 MHz(1.62 GHz)
内存时钟频率:1100 Mhz
内存总线宽度:256位
最大纹理尺寸大小(x,y,z)1D =(8192),2D =(65536,32768) ,3
D =(2048,2048,2048)
最大分层1D纹理尺寸,(num)层1D =(8192),512层
最大分层2D纹理大小,(num)层2D =(8192,8192),512层
常量内存总量:65536字节
每块共享内存总量:16384字节
每块可用寄存器总数:8192
变形大小: 32
每个多处理器的最大线程数:768
每个块的最大线程数:512线程块的
最大维度大小(x,y,z):( 512,512,64)
网格大小的最大维度大小(x,y) ,z):( 65535,65535,1)
最大内存间距:2147483647字节
纹理对齐:256字节
并发副本和内核执行:是1个副本引擎
内核运行时限:是
集成GPU共享主机内存:否
支持主机页锁定内存映射:是
Surfaces的对齐要求:是
设备有ECC支持:已禁用
设备支持统一寻址(UVA):没有
设备的PCI总线ID/PCI位置ID:9/0
计算模式:
<默认(多主机线程可以使用:: cudaSetDevice()与设备SIMU ltaneously)>
在下面的示例中,Visual StudiothreadIdx用红线突出显示“”。
看起来程序执行成功,所以问题只是VisualStudio中的显示问题。
我怎样才能使 Visual Studio 不再突出显示threadIdx为无效?
我的环境: * 操作系统:Windows7,64位 * VisualStudio2010,CUDA5.5
源代码:
#include <cuda_runtime.h>
#include <stdio.h>
#include <math.h>
#include <cuda.h>
#define N 256
__global__ void matrix_vector_multi_gpu_1_256(float *A_d, float *B_d, float *C_d);
int main(){
int i,j;
float A[N], B[N*N], C[N];
float *A_d, *B_d, *C_d;
dim3 blocks(1,1,1);
dim3 threads(256,1,1);
for(j=0;j<N;j++){
for(i=0;i<N;i++){
B[j*N+i]=((float)j)/256.0;
}
}
for(j=0;j<N;j++){
C[j]=1.0F;
}
cudaMalloc((void**)&A_d, N*sizeof(float));
cudaMalloc((void**)&B_d, N*N*sizeof(float));
cudaMalloc((void**)&C_d, N*sizeof(float));
cudaMemcpy(A_d,A,N*sizeof(float),cudaMemcpyHostToDevice);
cudaMemcpy(B_d,B,N*N*sizeof(float),cudaMemcpyHostToDevice);
cudaMemcpy(C_d,C,N*sizeof(float),cudaMemcpyHostToDevice);
matrix_vector_multi_gpu_1_256<<<blocks,threads>>>(A_d,B_d,C_d);
cudaMemcpy(A,A_d,N*sizeof(float),cudaMemcpyDeviceToHost);
for(j=0;j<N;j++){
printf("A[ %d ]=%f \n",j,A[j]);
}
getchar();
cudaFree(A_d);
cudaFree(B_d); …Run Code Online (Sandbox Code Playgroud) 现在我AVDepthPhotoFilter从iPhone7Plus的立体相机中运行Rendering Depth Deta.
所以,我想访问每像素深度数据,但是,我不知道该怎么做.请指教.