0
イメージをパブリッシュするPythonを使用してROSでプログラムを作成しようとしていますが、インポートする2つのものがあります。プログラムを実行すると、このエラーメッセージが表示されます。パブリッシャーサブスクライバーモデルオーバーロードされたインポート名
File "/opt/ros/indigo/lib/python2.7/dist-packages/rospy/topics.py", line 812, in __init__
super(Publisher, self).__init__(name, data_class, Registration.PUB)
File "/opt/ros/indigo/lib/python2.7/dist-packages/rospy/topics.py", line 138, in __init__
raise ValueError("data_class [%s] is not a class"%data_class)
ValueError: data_class [<module 'PIL.Image' from '/usr/lib/python2.7/dist-packages/PIL/Image.pyc'>] is not a class
私はPIL画像とのImageFilter、イメージ1を初期化ラインをインポートする行を取り出して、画像1を公開行すると2つの輸入Imageオブジェクトの間に混乱がありません(と思う)ので、プログラムが正常に動作します。 2つのイメージを区別するようプログラムに指示する方法はありますか?
#!/usr/bin/env python
import rospy
from sensor_msgs.msg import Image
from PIL import Image, ImageFilter
def camera():
pub = rospy.Publisher('rgb', Image, queue_size=10)
image1 = Image.open('dog.png')
pub.publish(image1)
if __name__ == '__main__':
try:
camera()
except rospy.ROSInterruptException:
pass
あなたのコードにはバグがたくさんあります:1)rosノードを初期化せず( 'rospy.init_node()'を使ってください)、2)PILイメージを直接公開することはできませんが、 ROS画像メッセージに変換する。 – luator