openpose内部输出

for(int i =0;i<4;i++)
{
   std::cout<<((spCaffeNetOutputBlob.get())->shape())[i]<shape())[2];
int shape3 = ((spCaffeNetOutputBlob.get())->shape())[3];
((spCaffeNetOutputBlob.get())->cpu_data());
const float* t = ((spCaffeNetOutputBlob.get())->cpu_data());
//std::cout<count())<count();kk++)
{
    //lulu = lulu+1;
    //std:cout<count())<cpu_data())[kk]<cpu_data())[kk]<<'\n';
 }
file.close();

spCaffeNetOutputBlob是由spCaffeNetOutputBlob = ((NetCaffe*)spNet.get())->getOutputBlob()获得的,作为

spResizeAndMergeCaffe->Forward_gpu({spCaffeNetOutputBlob.get()}, {spHeatMapsBlob.get()});
的输入参数,其中

boost::shared_ptr> NetCaffe::getOutputBlob() const
NetCaffe::getOutputBlob()返回的是boost::shared_ptr指针,所以 spCaffeNetOutputBlob是这样的一个指针,为了获得普通的c指针,通过get()函数来获得

这样就会获得指向caffe::Blob的一个指针,然后调用blob的shape()函数,即可输出openpose网络输出的大小。调用count()就是BxCxHxW的大小

要输出所有map的值,因为他们是以一维数组存储的,所以需要遍历,但是以一维形式调用

std:cout<<((spCaffeNetOutputBlob.get())->cpu_data())[kk]<

用文件流写入文件中,方便查看

你可能感兴趣的:(openpose内部输出)