25 namespace perception {
57 : rows_(rows), cols_(cols), type_(type), blob_(blob), offset_(offset) {
59 CHECK_EQ(blob_->num_axes(), 3);
60 CHECK_EQ(blob_->shape(2), channels_);
61 CHECK_LE(offset_ + blob_->offset({rows - 1, cols - 1, channels_ - 1}),
62 (int)(blob_->count()));
63 width_step_ = blob_->offset({1, 0, 0}) * static_cast<int>(
sizeof(uint8_t));
67 : rows_(rows), cols_(cols), type_(type), offset_(0) {
70 width_step_ = blob_->offset({1, 0, 0}) * static_cast<int>(
sizeof(uint8_t));
77 channels_(src.channels_),
78 width_step_(src.width_step_),
80 offset_(src.offset_) {}
83 this->rows_ = src.
rows_;
84 this->cols_ = src.
cols_;
85 this->type_ = src.
type_;
88 this->blob_ = src.
blob_;
99 const uint8_t *
cpu_data()
const {
return cpu_ptr(0); }
101 const uint8_t *
gpu_data()
const {
return gpu_ptr(0); }
104 return blob_->cpu_data() + blob_->offset({row, 0, 0}) + offset_;
108 return blob_->gpu_data() + blob_->offset({row, 0, 0}) + offset_;
112 return blob_->mutable_cpu_data() + blob_->offset({row, 0, 0}) + offset_;
116 return blob_->mutable_gpu_data() + blob_->offset({row, 0, 0}) + offset_;
120 int rows()
const {
return rows_; }
121 int cols()
const {
return cols_; }
125 int total()
const {
return rows_ * cols_ * channels_; }
128 int offset = offset_ + blob_->offset({roi.
y, roi.
x, 0});
133 std::shared_ptr<Blob<uint8_t>>
blob() {
return blob_; }
136 std::shared_ptr<const Blob<uint8_t>>
blob()
const {
return blob_; }
144 std::shared_ptr<Blob<uint8_t>>
blob_;
int cols_
Definition: image_8u.h:140
int offset_
Definition: image_8u.h:145
Color type_
Definition: image_8u.h:141
Image8U operator()(const Rect< int > &roi)
Definition: image_8u.h:127
T width
Definition: box.h:119
Color type() const
Definition: image_8u.h:119
PlanningContext is the runtime context in planning. It is persistent across multiple frames...
Definition: atomic_hash_map.h:25
uint8_t * mutable_gpu_data()
Definition: image_8u.h:97
A wrapper around Blob holders serving as the basic computational unit for images. ...
Definition: image_8u.h:44
const uint8_t * gpu_ptr(int row=0) const
Definition: image_8u.h:107
int channels() const
Definition: image_8u.h:122
uint8_t * mutable_gpu_ptr(int row=0)
Definition: image_8u.h:115
std::shared_ptr< Blob< uint8_t > > blob()
Definition: image_8u.h:133
~Image8U()
Definition: image_8u.h:93
std::shared_ptr< const Image8U > Image8UConstPtr
Definition: image_8u.h:149
const uint8_t * cpu_ptr(int row=0) const
Definition: image_8u.h:103
int rows_
Definition: image_8u.h:139
std::shared_ptr< Image8U > Image8UPtr
Definition: image_8u.h:148
int cols() const
Definition: image_8u.h:121
std::shared_ptr< Blob< uint8_t > > blob_
Definition: image_8u.h:144
const uint8_t * cpu_data() const
Definition: image_8u.h:99
T height
Definition: box.h:120
Image8U(int rows, int cols, Color type, std::shared_ptr< Blob< uint8_t >> blob, int offset=0)
Definition: image_8u.h:55
int width_step() const
Definition: image_8u.h:123
const std::map< Color, int > kChannelsMap
Definition: image_8u.h:35
Image8U()
Definition: image_8u.h:46
Image8U(const Image8U &src)
Definition: image_8u.h:73
uint8_t * mutable_cpu_ptr(int row=0)
Definition: image_8u.h:111
uint8_t * mutable_cpu_data()
Definition: image_8u.h:95
const uint8_t * gpu_data() const
Definition: image_8u.h:101
Image8U(int rows, int cols, Color type)
Definition: image_8u.h:66
std::shared_ptr< const Blob< uint8_t > > blob() const
Definition: image_8u.h:136
Image8U & operator=(const Image8U &src)
Definition: image_8u.h:82
int rows() const
Definition: image_8u.h:120
int width_step_
Definition: image_8u.h:143
int total() const
Definition: image_8u.h:125
int channels_
Definition: image_8u.h:142
Color
Definition: image_8u.h:28