Closed lilihongjava closed 1 month ago
目前没法区分,只能配置不同的graph。不过也可以在osd element里面加channel_id和绘画rules这样的属性来控制。
"draw_lines": [
{
"channel_id": 1,
"upper_line": [[428, 318], [802, 290], [1100, 280], [1918, 340], [1878, 820]],
"lower_line": [[2, 312], [210, 438], [1180, 710], [1180, 710], [1870, 830]],
"left_line": [[716, 246], [1228, 194]],
"right_line": [[1794, 172], [1818, 826]]
},
{
"channel_id": 2,
"upper_line": [[428, 318], [802, 290]],
"lower_line": [[2, 312], [210, 438]],
"left_line": [[716, 246], [1228, 194]],
"right_line": [[1794, 172], [1818, 826]]
}
]
},是这样意思吗
对的,这个功能目前没有设计,需要自行实现
那在common::ErrorCode Osd::initInternal(const std::string& json)里面,需要获取当前运行的channel是哪个,做对比,如何获取。代码示例麻烦给个
ObjectMetadata->mFrame->mChannelId,这个是json文件里配置的channel_id
ObjectMetadata->mFrame->mChannelIdInternal,这个是程序内部计算的,从0开始递增1的id
解决了,谢谢
输入视频是多路的,我现在用osd插件,如果用以下的配置,每一路画线的逻辑是一样的,我希望不同路不同的画线逻辑 即 我希望不同路用不同的如下 upper_line、lower_line等 配置项,实现思路能否提供
{ "configure": { "osd_type": "TRACK", "class_names_file": "../data/coco.names", "draw_utils": "OPENCV", "draw_interval": false, "put_text": true, "upper_line": [[428, 318], [802, 290], [1100, 280], [1918, 340], [1878, 820]], "lower_line": [[2, 312], [210, 438], [1180, 710], [1180, 710], [1870, 830]], "left_line": [[716, 246], [1228, 194]], "right_line": [[1794, 172], [1818, 826]], "push_url": "XXXXX", "shop_id": 66666666 }, "shared_object": "../lib/libosd.so", "name": "osd", "side": "sophgo", "thread_number": 2 }