10 #include <opencv2/highgui/highgui.hpp> 11 #include <opencv2/imgproc/imgproc.hpp> 12 #include <opencv2/core/core.hpp> 13 #ifndef CV_VERSION_EPOCH 14 #define CV_VERSION_EPOCH CV_VERSION_MAJOR 16 #if CV_VERSION_EPOCH > 3 17 #include <opencv2/imgcodecs/legacy/constants_c.h> 25 "implementation_id",
"JpegEncoder",
26 "type_name",
"JpegEncoder",
27 "description",
"null component",
28 "version", HRPSYS_PACKAGE_VERSION,
30 "category",
"example",
31 "activity_type",
"DataFlowComponent",
34 "lang_type",
"compile",
36 "conf.default.quality",
"95",
45 m_decodedIn(
"decoded", m_decoded),
46 m_encodedOut(
"encoded", m_encoded),
61 std::cout <<
m_profile.instance_name <<
": onInitialize()" << std::endl;
114 std::cout <<
m_profile.instance_name<<
": onActivated(" << ec_id <<
")" << std::endl;
120 std::cout <<
m_profile.instance_name<<
": onDeactivated(" << ec_id <<
")" << std::endl;
130 Img::ImageData& idat =
m_decoded.data.image;
131 std::vector<uchar>
buf;
132 std::vector<int> param = std::vector<int>(2);
133 param[0] = CV_IMWRITE_JPEG_QUALITY;
140 uchar r,g,
b, *raw=idat.raw_data.get_buffer();
141 for (
unsigned int i=0;
i<idat.raw_data.length();
i+=3, raw+=3){
142 r = raw[0]; g = raw[1]; b = raw[2];
143 raw[0] =
b; raw[1] = g; raw[2] = r;
146 cv::Mat src(idat.height, idat.width, CV_8UC3,
147 idat.raw_data.get_buffer());
148 cv::imencode(
".jpg", src, buf, param);
149 m_encoded.data.image.format = Img::CF_RGB_JPEG;
154 cv::Mat src(idat.height, idat.width, CV_8U,
155 idat.raw_data.get_buffer());
156 cv::imencode(
".jpg", src, buf, param);
157 m_encoded.data.image.format = Img::CF_GRAY_JPEG;
161 m_encoded.data.image.raw_data.length(buf.size());
162 unsigned char *dst =
m_encoded.data.image.raw_data.get_buffer();
163 memcpy(dst, &buf[0], buf.size());
166 std::cout <<
"JpegEncoder:" << idat.raw_data.length() <<
"->" 167 <<
m_encoded.data.image.raw_data.length() << std::endl;
218 RTC::Create<JpegEncoder>,
219 RTC::Delete<JpegEncoder>);
ComponentProfile m_profile
png_infop png_charpp int png_charpp profile
Img::TimedCameraImage m_decoded
virtual RTC::ReturnCode_t onInitialize()
virtual RTC::ReturnCode_t onDeactivated(RTC::UniqueId ec_id)
InPort< Img::TimedCameraImage > m_decodedIn
bool addOutPort(const char *name, OutPortBase &outport)
ExecutionContextHandle_t UniqueId
bool bindParameter(const char *param_name, VarType &var, const char *def_val, bool(*trans)(VarType &, const char *)=coil::stringTo)
OutPort< Img::TimedCameraImage > m_encodedOut
void JpegEncoderInit(RTC::Manager *manager)
Img::TimedCameraImage m_encoded
virtual bool write(DataType &value)
virtual ~JpegEncoder()
Destructor.
virtual RTC::ReturnCode_t onActivated(RTC::UniqueId ec_id)
bool addInPort(const char *name, InPortBase &inport)
virtual RTC::ReturnCode_t onExecute(RTC::UniqueId ec_id)
bool registerFactory(coil::Properties &profile, RtcNewFunc new_func, RtcDeleteFunc delete_func)
static const char * jpegdecoder_spec[]
JpegEncoder(RTC::Manager *manager)
Constructor.