New image test utilities and memory management fixes.
PiperOrigin-RevId: 559926378
This commit is contained in:
parent
dd09c8d3f7
commit
6e6978cdbf
|
@ -399,11 +399,13 @@ cc_library(
|
|||
"//mediapipe/framework:packet",
|
||||
"//mediapipe/framework:timestamp",
|
||||
"//mediapipe/framework/formats:image",
|
||||
"//mediapipe/framework/formats:image_format_cc_proto",
|
||||
"//mediapipe/framework/formats:image_frame",
|
||||
"//mediapipe/framework/formats:image_frame_opencv",
|
||||
"//mediapipe/framework/port:opencv_core",
|
||||
"//mediapipe/framework/port:opencv_imgcodecs",
|
||||
"//mediapipe/framework/port:opencv_imgproc",
|
||||
"@com_google_absl//absl/log",
|
||||
],
|
||||
)
|
||||
|
||||
|
|
|
@ -1,7 +1,15 @@
|
|||
#include "mediapipe/util/image_test_utils.h"
|
||||
|
||||
#include <cstdint>
|
||||
#include <memory>
|
||||
#include <utility>
|
||||
|
||||
#include "absl/log/log.h"
|
||||
#include "mediapipe/framework/formats/image.h"
|
||||
#include "mediapipe/framework/formats/image_format.pb.h"
|
||||
#include "mediapipe/framework/formats/image_frame.h"
|
||||
#include "mediapipe/framework/formats/image_frame_opencv.h"
|
||||
#include "mediapipe/framework/packet.h"
|
||||
#include "mediapipe/framework/port/opencv_core_inc.h"
|
||||
#include "mediapipe/framework/port/opencv_imgcodecs_inc.h"
|
||||
#include "mediapipe/framework/port/opencv_imgproc_inc.h"
|
||||
|
@ -43,15 +51,24 @@ mediapipe::ImageFormat::Format GetImageFormat(int image_channels) {
|
|||
|
||||
Packet MakeImageFramePacket(cv::Mat input, int timestamp) {
|
||||
ImageFrame input_image(GetImageFormat(input.channels()), input.cols,
|
||||
input.rows, input.step, input.data, [](uint8_t*) {});
|
||||
return MakePacket<ImageFrame>(std::move(input_image)).At(Timestamp(0));
|
||||
input.rows, input.step, input.data,
|
||||
[input](uint8_t*) mutable { input.release(); });
|
||||
return MakePacket<ImageFrame>(std::move(input_image))
|
||||
.At(Timestamp(timestamp));
|
||||
}
|
||||
|
||||
Packet MakeImagePacket(cv::Mat input, int timestamp) {
|
||||
mediapipe::Image input_image(std::make_shared<mediapipe::ImageFrame>(
|
||||
GetImageFormat(input.channels()), input.cols, input.rows, input.step,
|
||||
input.data, [](uint8_t*) {}));
|
||||
return MakePacket<mediapipe::Image>(std::move(input_image)).At(Timestamp(0));
|
||||
input.data, [input](uint8_t*) mutable { input.release(); }));
|
||||
return MakePacket<mediapipe::Image>(std::move(input_image))
|
||||
.At(Timestamp(timestamp));
|
||||
}
|
||||
|
||||
cv::Mat RgbaToBgr(cv::Mat rgba) {
|
||||
cv::Mat bgra;
|
||||
cv::cvtColor(rgba, bgra, cv::COLOR_RGBA2BGR);
|
||||
return bgra;
|
||||
}
|
||||
|
||||
} // namespace mediapipe
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
#include <string>
|
||||
|
||||
#include "mediapipe/framework/formats/image.h"
|
||||
#include "mediapipe/framework/formats/image_format.pb.h"
|
||||
#include "mediapipe/framework/packet.h"
|
||||
#include "mediapipe/framework/port/opencv_core_inc.h"
|
||||
|
||||
|
@ -27,6 +27,9 @@ Packet MakeImageFramePacket(cv::Mat input, int timestamp = 0);
|
|||
// Converts the cv::Mat into Image packet.
|
||||
Packet MakeImagePacket(cv::Mat input, int timestamp = 0);
|
||||
|
||||
// Converts RGBA Mat to BGR.
|
||||
cv::Mat RgbaToBgr(cv::Mat rgba);
|
||||
|
||||
} // namespace mediapipe
|
||||
|
||||
#endif // MEDIAPIPE_UTIL_IMAGE_TEST_UTILS_H_
|
||||
|
|
Loading…
Reference in New Issue
Block a user