线程评级:
  • 0票(s) - 0平均
  • 1
  • 2
  • 3.
  • 4
  • 5
有视觉的RoboDK
# 1
我试图让相机显示模拟视觉拾取和放置。

我不明白为什么当我改变“而cam_item.setParam('isOpen') == '1':”到“while(1):”它会不断打开一个新窗口,即使我从未关闭它。

"而cam_item.setParam('isOpen') == '1':"将有1个窗口并正确更新。


# import_install(“cv2”、“opencv-contrib-python”)
导入cv2为CV
导入numpy为np
进口tempfile
导入数学
从robodk。robolink import * # RoboDK API
从robodk。robomath导入* #机器人工具箱
从robodk。robodialog导入*
导入的时间
#设置
RDK = Robolink()
PROCESS_COUNT = -1 #退出前需要处理多少帧。-1表示无限。

#相机
CAM_NAME = "摄像机1"
CAMERA_SIZE_X = 1280.0 #像素
CAMERA_SIZE_Y = 720.0 #像素
#计算框架和目标




#----------------------------------
从RoboDK那里拿到模拟摄像机
cam_item = RDK。项目(CAM_NAME ITEM_TYPE_CAMERA)
#camref = RDK。ItemUserPick('选择相机位置(参考,工具或对象)')
#cam_item = RDK。Cam2D_Add(camref, 'FOCAL_LENGTH=6 FOV=32 FAR_LENGTH=1000 SIZE=1280x720')
cam_item.Valid():
抛出异常("Camera not found! "%s" % CAM_NAME)
cam_tool = cam_item.Parent()
如果不是cam_tool.Valid()或cam_tool.Type() != ITEM_TYPE_TOOL:
引发异常("Camera父类无效,确保它是一个工具!")
Tempdir = tempfile.gettempdir()
Snapshot_file = tempdir + "\\sift_temp.png"
cam_item。setParam(“开放”,1)
#----------------------------------------------
#启动摄像头馈送。
#如果您正在使用连接的设备,请使用cv。视频捕捉,以获得现场直播。
#https://docs.opencv.org/master/d8/dfe/cl...pture.html
#
#capture = cv. videoccapture (1)
# retval, image = capture.read()

#----------------------------------------------
#目前,我们需要在磁盘上保存RDK快照。
一个新的更新即将到来,它将返回图像,如:img = RDK。Cam2D_Snapshot (cam_item”)
#tempdir = tempfile.gettempdir()
#snapshot_file = tempdir + "\\sift_temp.png"

#----------------------------------------------
img = RDK。Cam2D_Snapshot (cam_item”)
#处理相机帧
Img_scene = cv。imread (snapshot_file cv.IMREAD_GRAYSCALE)
当cam_item.setParam('isOpen') == '1'时:
RDK。Cam2D_Snapshot (snapshot_file cam_item)

Img_scene = cv。imread (snapshot_file cv.IMREAD_GRAYSCALE)

简历。imshow(“测试”,img_scene)
key = cv.waitKey(1)
如果key == 27:
用户按下ESC,退出


cv.destroyAllWindows ()




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