- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我是 ROS 新手。我正在玩集成 OpenCV 和 ROS。我正在使用的代码的灵感来自关于将 ROS 消息转换为 CV::mat 并返回的 ROS 教程。
我正在订阅 raspicam 节点发布的主题 /raspicam_node/image/compressed
。我没有问题获取主题,将其转换为 CV:mat,并使用 OpenCV 对其进行修改。第 32 行打开一个窗口并显示修改后的 CV:mat 图像。
我的问题出现在第 36 行。我可以使用 rostopic list
查看主题,但是当我 echo
时,它什么也没有出现。如果我使用 rqt_image_view
也是一样。
对我缺少的东西有什么想法吗?谢谢你!
#!/usr/bin/env python
from __future__ import print_function
import roslib
roslib.load_manifest('comp_vision')
import sys
import rospy
import cv2
from std_msgs.msg import String
from sensor_msgs.msg import Image, CompressedImage
from cv_bridge import CvBridge, CvBridgeError
class ImageConverter:
def __init__(self):
self.image_pub = rospy.Publisher("modified_image", CompressedImage, queue_size=10)
self.brige = CvBridge()
self.image_sub = rospy.Subscriber("/raspicam_node/image/compressed", CompressedImage, self.callback)
def callback(self,data):
try:
cv_image = self.brige.compressed_imgmsg_to_cv2(data, "passthrough")
except CvBridgeError as e:
print(e)
(rows, cols, channels) = cv_image.shape
if cols > 60 and rows > 60:
cv2.circle(cv_image, (50,50), 10, 255)
cv2.imshow("Image Window", cv_image)
cv2.waitKey(3)
try:
self.image_pub.publish(self.brige.cv2_to_compressed_imgmsg(cv_image))
except CvBridgeError as e:
print(e)
def main(args):
ic = ImageConverter()
rospy.init_node("image_converter", anonymous=True)
try:
rospy.spin()
except KeyboardInterrupt:
print("shutting down")
cv2.destroyAllWindows()
if __name__ == '__main__':
main(sys.argv)
最佳答案
如果您检查 rostopic echo/modified_image
,您可以看到您的主题已成功发布。
rqt_image_view
如果您调用您发布的主题 modified_image/compressed
将显示它。
来自compressed_image_transport wiki :
publish it on a topic of the form image_raw/compressed. Then any ROS node using image_transport can subscribe to image_raw with transport compressed, just as if image_transport were used on the publisher side
关于opencv - ROS Melodic & OpenCV - CompressedImage 不发布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51688799/
我是 ROS 新手。我正在玩集成 OpenCV 和 ROS。我正在使用的代码的灵感来自关于将 ROS 消息转换为 CV::mat 并返回的 ROS 教程。 我正在订阅 raspicam 节点发布的主题
我想访问 16UC1 格式的 png 图像的每个单独像素值的值,我将其作为 byte[] 接收。 我对用 C# 进行图像处理真的很陌生,现在我被这个问题困了好几天。 我可以简单地使用“典型的”bgr8
我是一名优秀的程序员,十分优秀!