10 #include <opencv2/core/core_c.h> 11 #include <opencv2/highgui/highgui_c.h> 12 #ifndef CV_VERSION_EPOCH 13 #define CV_VERSION_EPOCH CV_VERSION_MAJOR 15 #if CV_VERSION_EPOCH > 3 16 #include <opencv2/imgcodecs/imgcodecs.hpp> 18 #include <opencv2/highgui/highgui.hpp> 24 static const char*
spec[] =
26 "implementation_id",
"CameraImageSaver",
27 "type_name",
"CameraImageSaver",
28 "description",
"camera image saver",
29 "version", HRPSYS_PACKAGE_VERSION,
31 "category",
"example",
32 "activity_type",
"DataFlowComponent",
35 "lang_type",
"compile",
37 "conf.defalt.basename",
"image",
46 m_imageIn(
"image", m_image),
113 std::cout <<
m_profile.instance_name<<
": onActivated(" << ec_id <<
")" << std::endl;
119 std::cout <<
m_profile.instance_name<<
": onDeactivated(" << ec_id <<
")" << std::endl;
130 switch (
m_image.data.image.format){
132 cvImage = cvCreateImage(cvSize(
m_image.data.image.width,
137 cvImage = cvCreateImage(cvSize(
m_image.data.image.width,
142 std::cerr <<
"unsupported color format(" 143 <<
m_image.data.image.format <<
")" << std::endl;
144 return RTC::RTC_ERROR;
146 switch(
m_image.data.image.format){
150 char *dst = cvImage->imageData;
151 for (
unsigned int i=0;
i<
m_image.data.image.raw_data.length();
i+=3){
152 dst[
i ] =
m_image.data.image.raw_data[
i+2];
153 dst[
i+1] =
m_image.data.image.raw_data[
i+1];
154 dst[
i+2] =
m_image.data.image.raw_data[
i ];
159 memcpy(cvImage->imageData,
160 m_image.data.image.raw_data.get_buffer(),
161 m_image.data.image.raw_data.length());
169 cv::Mat
image = cv::cvarrToMat(cvImage);
170 cv::imwrite(fname, image);
172 cvReleaseImage(&cvImage);
222 RTC::Create<CameraImageSaver>,
223 RTC::Delete<CameraImageSaver>);
ComponentProfile m_profile
png_infop png_charpp int png_charpp profile
virtual ~CameraImageSaver()
Destructor.
Img::TimedCameraImage m_image
void CameraImageSaverInit(RTC::Manager *manager)
coil::Properties & getProperties()
ExecutionContextHandle_t UniqueId
CameraImageSaver(RTC::Manager *manager)
Constructor.
bool bindParameter(const char *param_name, VarType &var, const char *def_val, bool(*trans)(VarType &, const char *)=coil::stringTo)
static const char * spec[]
InPort< Img::TimedCameraImage > m_imageIn
virtual RTC::ReturnCode_t onExecute(RTC::UniqueId ec_id)
std::string sprintf(char const *__restrict fmt,...)
virtual RTC::ReturnCode_t onInitialize()
bool addInPort(const char *name, InPortBase &inport)
virtual RTC::ReturnCode_t onActivated(RTC::UniqueId ec_id)
bool registerFactory(coil::Properties &profile, RtcNewFunc new_func, RtcDeleteFunc delete_func)
virtual RTC::ReturnCode_t onDeactivated(RTC::UniqueId ec_id)