线程评级:
  • 0票(s) - 0平均
  • 1
  • 2
  • 3.
  • 4
  • 5
(API) Cam2D_Snapshot返回错误大小的图像
# 1
附加的代码始终写入100x75的图像,而不是预期的640x480。在我发现这个bug时正在编写的代码中,它有时返回正确的大小,有时返回错误的大小,因此它看起来像一个竞争条件。这个微小的错误尺寸看起来也与我在相机预览窗口中看到的缩略图的大小相似。

有关守则如下:

virtual_camera = RDK。Cam2D_Add(item_object=station, cam_params="FOCAL_LENGTH=1.93 FOV=65.5 SIZE=640x480")

文件名= "/tmp/bug.png"
RDK.Cam2D_Snapshot (file_save_img =文件名)

我用的是Ubuntu 22.04, RoboDK v5.4.1(64位)

完整的代码:


代码:
#!/usr/bin/python3

从robolink导入* # API与RoboDK通信
从robodk导入# robodk机器人工具箱

RDK = Robolink()

def clear_station (rdk):
station_name = "相机bug"

#如果这个脚本已经有一个站点,删除它
station = rdk.Item(station_name)
试一试:
station.Delete ()
robolink除外。InputError为e:
通过

station = rdk.AddStation(station_name)
返回车站

station = clear_station(RDK)
virtual_camera = RDK。Cam2D_Add(item_object=station, cam_params="FOCAL_LENGTH=1.93 FOV=65.5 SIZE=640x480")

文件名= "/tmp/bug.png"
RDK.Cam2D_Snapshot (file_save_img =文件名)

当我们讨论这个话题时,API文档中所有拼写错误的“length”(例如:,“FOCAL_LENGTH”而不是“FOCAL_LENGTH”)为相机设置字符串我们应该实际使用,还是库实际上期望正确的拼写?


附加文件 图像(年代)

# 2
你好,

为了使快照工作,必须打开预览窗口——这需要一些时间。
在Cam2D_Add之后添加暂停(0.1)应该可以解决您的问题。

你可以使用正确的或拼错的拼写。我将用正确的拼写更新文档。
谢谢你指出来。
有关RoboDK及其功能的有用信息,请访问我们的2022世界杯32强赛程表时间 通过观看我们的YouTube频道
# 3
感谢您的快速回复。我在Cam2D_Add()之后添加了一个3秒的time.sleep(3),它仍然始终产生一个小图像。快照窗口也保持小。也许是侏儒不接受尺寸提示的原因?但是SNAPSHOT参数不应该使保存的图像大小独立于预览窗口吗?将其设置为640x480也没有帮助。
# 4
我在Windows上没有遇到这个问题,我会尽快在Ubuntu上测试一下。

实际上,SIZE是相机本机传感器大小,而SNAPSHOT是通过套接字检索时在磁盘上保存时的输出大小。

当您直接通过API检索图像时,图像的大小是多少?

代码:
bytes_img = RDK。Cam2D_Snapshot (cam_item”)
Nparr = np.frombuffer(bytes_img, np.uint8)
Img = cv。imdecode (nparr cv.IMREAD_COLOR)
有关RoboDK及其功能的有用信息,请访问我们的2022世界杯32强赛程表时间 通过观看我们的YouTube频道
你好,

WINDOWFIXED和SNAPSHOT=640x480参数不能解决问题。

我注意到在Cam2D_Add上添加断点时不存在这个问题。在clear_station调用之后添加一个暂停来修复它。在不删除相机的情况下向站点添加相机时不会出现此问题。下面的代码为我工作。

代码:
#!/usr/bin/python3

从robolink导入* # API与RoboDK通信
从robodk导入# robodk机器人工具箱

RDK = Robolink()

def clear_station (rdk):
station_name = "相机bug"

#如果这个脚本已经有一个站点,删除它
station = rdk.Item(station_name)
试一试:
station.Delete ()
robolink除外。InputError为e:
通过

station = rdk.AddStation(station_name)
返回车站

station = clear_station(RDK)
暂停(0.3)
virtual_camera = RDK。Cam2D_Add(item_object=station, cam_params="FOCAL_LENGTH=1.93 FOV=65.5 SIZE=640x480")

文件名= "/tmp/bug.png"
RDK.Cam2D_Snapshot (file_save_img =文件名)
有关RoboDK及其功能的有用信息,请访问我们的2022世界杯32强赛程表时间 通过观看我们的YouTube频道




浏览此主题的用户:
1客人(年代)