I use Ros melodic on xavier.When I use cv_bridge::CvImage to change cv::Mat to CompressedImage,it says "
[New Thread 0x7fa1ffa740 (LWP 3110)]
[New Thread 0x7fa1bf9740 (LWP 3111)]
[New Thread 0x7fa17f8740 (LWP 3112)]
[New Thread 0x7fa13f7740 (LWP 3113)]
[New Thread 0x7fa0ff6740 (LWP 3114)]
[New Thread 0x7fa0bf5740 (LWP 3115)]
[New Thread 0x7fa07f4740 (LWP 3116)]
Thread 7 “DecCapPlane” received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fa8d3d740 (LWP 3104)]
0x0000007fb7c18968 in jpeg_CreateCompress () from /usr/lib/aarch64-linux-gnu/tegra/libnvjpeg.so
"
My code is as bellow:
void onGetYuvData(const char * pData,unsigned long dataSize){
ROS_INFO(“onGetYuv %ld”,dataSize);
if(ros::ok()){
Mat yuvImage;
yuvImage.create(720*3/2,1280,CV_8UC1);
memcpy(yuvImage.data,pData,dataSize);
cv::Mat image;
cvtColor(yuvImage,image,CV_YUV420p2RGB);
sensor_msgs::CompressedImagePtr msg = cv_bridge::CvImage(std_msgs::Header(), "bgr8", image).toCompressedImageMsg();
msg->header.seq = seq++;
msg->header.stamp = ros::Time::now();
imagePublisher.publish(msg);
ros::spinOnce();
rate->sleep();
}
}