林淳哉 様
ご回答ありがとうございます。
記載していただいたサイトを含め調べながら見様見真似で以下のようにプログラムを改善してみました。
しかし、このようなエラーがでてしまいます。
Traceback (most recent call last):
File "pf.py", line 83, in <module>
gray = cv2.cvtColor(cv_image, cv2.COLOR_RGB2GRAY)
NameError: name 'cv_image' is not defined
原因はcv_imageを渡していることだという事はわかるのですが。
どのように改善するべきなのでしょうか?
import sys, time
import rospy
import cv2
import numpy as np
from sensor_msgs.msg import Image
from cv_bridge import CvBridge, CvBridgeError
from std_msgs.msg import UInt16
def callback(self, data):
try:
cv_image = self.bridge.imgmsg_to_cv2(data, 'bgr8')
except CvBridgeError, e:
print e
cv_image = np.array(cv_image, dtype=np.uint8)
image_sub = rospy.Subscriber('/usb_cam/image_raw', Image, callback)
bridge = CvBridge()
filter = ParticleFilter()
filter.initialize()
while True:
gray = cv2.cvtColor(cv_image, cv2.COLOR_RGB2GRAY)
y, x = filter.filtering(gray)
cv2.circle(cv_image, (int(x), int(y)), 10, (0, 0, 255), -1)
for i in range(filter.SAMPLEMAX):
cv2.circle(cv_image, (int(filter.X[i]), int(filter.Y[i])), 2, (0, 0, 255), -1)
cv2.imshow('pf', cv_image)
if cv2.waitKey(20) & 0xFF == 27:
break
try:
rospy.spin()
except KeyboardInterrupt:
pass
2016年12月15日木曜日 23時39分32秒 UTC+9 Junya Hayashi: