没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
python图像处理实验.md
10/16/2021
1 / 11
任
务
⼀:
基
于
国
庆
作
业
实
现
对
待
检
测
图
⽚
的
传
输
在
本
次
实
验
中
,
我
们
⾸
先
需
要
通过
ROS
来
完
成
对
需
要
进
⾏
待
检
测
图
⽚
的
传
输
。
这部
分
实
验
顺
序
是
基
于
国
庆
作
业
中
的
任
务
⼀,
可
以以
该
任
务
为
基
础
完
成
本
次
实
验
。
创
建
相
关
p
ackage
根
据
国
庆
作
业,
在
根
⽬
录
下
建
⽴
ca
t
ki
n
_
ws
⽂
件
夹
1, cd ~/catkin_ws/src
2, catkin_create_pkg image_tran rospy roscpp std_msgs image_transport
cv_bridge
3, cd image_tran
4, mkdir -p scripts && cd scripts
5, code .
相
关
数据
准
备
请
在
⽹络
学
堂
上下
载
pyt
h
on
_
da
t
a
.
z
i
p
并
解
压
,
在
之
后
的
所
有
篇
幅
中
,
/
p
a
t
h
/
to
/
your
/
pyt
h
on
_
da
t
a
均
代
指
pyt
h
on
_
da
t
a
所
对
应
的⽬
录
i
m
age
_
pu
b
拷
⻉
i
m
age
_
pu
b
_
no
de
.
py
到
s
c
r
i
pts
⽬
录
下
1, cd ~/catkin_ws/src/image_tran/scripts
2, cp /path/to/your/python_data/image_pub_node.py .
代
码
结
构
如
下:
#!/usr/bin/env python
#coding:utf-8
import rospy
import sys
import cv2
import os
import numpy as np
from sensor_msgs.msg import Image
import random
from cv_bridge import CvBridge, CvBridgeError
root = "/path/to/your/python_data"
def pubImage():
rospy.init_node('pubImage', anonymous = True)
pub = rospy.Publisher('ShowImage', Image, queue_size = 10)
python图像处理实验.md
10/16/2021
2 / 11
rate = rospy.Rate(5)
bridge = CvBridge()
path = os.path.join(root, "ball_env.jpeg")
image = cv2.imread(path)
h, w, _ = image.shape
while not rospy.is_shutdown():
#
⽣
成
切分
后
的
图
⽚
start_h = int(random.random() * h / 4)
height = int(h * 3 / 4)
start_w = int(random.random() * w / 4)
width = int(w * 3 / 4)
transfer_image = image[start_h:(start_h+height),start_w:
(start_w+width),:]
#
传
输
切分
后
的
图
⽚
pub.publish(bridge.cv2_to_imgmsg(transfer_image, "bgr8"))
rate.sleep()
if __name__ == '__main__':
try:
pubImage()
except rospy.ROSInterruptException:
pass
其
中
需
要
注
意
的
是
需
要
将
root
变
量
改
为
/
p
a
t
h
/
to
/
your
/
pyt
h
on
_
da
t
a
root = "/path/to/your/python_data"
在
以
下
代
码
中
,
r
a
n
d
om
.
r
a
n
d
om
()
⽣
成
[0,1)
之
间
内
的
⼀个
随
机
数
,
通过
对
原
始
图
⽚
的
切分
,
可
以
⽣
成
从
⼀个
随
机
位
置
起
始
,
⾼
和
宽
均
为
原
始
图
⽚
3/4
的
图
⽚
#
⽣
成
切分
后
的
图
⽚
start_h = int(random.random() * h / 4)
height = int(h * 3 / 4)
start_w = int(random.random() * w / 4)
width = int(w * 3 / 4)
transfer_image = image[start_h:(start_h+height),start_w:(start_w+width),:]
i
m
age
_
su
b
拷
⻉
i
m
age
_
su
b
_
no
de
.
py
到
s
c
r
i
pts
⽬
录
下
1, cd ~/catkin_ws/src/image_tran/scripts
2, cp /path/to/your/python_data/image_sub_node.py .
代
码
结
构
如
下:
python图像处理实验.md
10/16/2021
3 / 11
#!/usr/bin/env python
#coding:utf-8
import rospy
import cv2
from sensor_msgs.msg import Image
from cv_bridge import CvBridge,CvBridgeError
def callback(data):
bridge = CvBridge()
cv_image = bridge.imgmsg_to_cv2(data, "bgr8")
cv2.imshow("view", cv_image)
def showImage():
rospy.init_node('showImage', anonymous = True)
cv2.namedWindow("view", cv2.WINDOW_AUTOSIZE)
cv2.startWindowThread()
rospy.Subscriber('ShowImage', Image, callback)
rospy.spin()
cv2.destroyWindow("view")
if __name__ == '__main__':
showImage()
la
un
ch
为了
⽅
便
同
学
们
执
⾏
整
个
流
程
,
可
以
将
la
un
ch
的
策
略
放
⼊
默
认
的
la
un
ch
中
,
代
码
如
下
1, cd ~/catkin_ws/src/image_tran
2, mkdir -p launch && cd launch
3, cp /path/to/your/python_data/start.launch .
st
a
rt
.
la
un
ch
包
含
如
下
内
容
<launch>
<node pkg="image_tran" type="image_sub_node.py" name="sub_node"
output="screen"/>
<node pkg="image_tran" type="image_pub_node.py" name="pub_node"
output="screen"/>
</launch>
运
⾏
完
成
上
述
代
码
后
,
可
以
通过
以
下
脚
本来
执
⾏
1, cd ~/catkin_ws
2, catkin_make
3, source devel/setup.bash
4, roslaunch image_tran start.launch
剩余10页未读,继续阅读
王佛伟
- 粉丝: 13
- 资源: 320
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0