티스토리 뷰

1. 소스코드

edge_cam.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import cv2
import rospy
import numpy as np

from sensor_msgs.msg import Image
from cv_bridge import CvBridge

bridge = CvBridge()
cv_image = np.empty(shape=[0])

def img_callback(data):
    global cv_image
    cv_image = bridge.imgmsg_to_cv2(data, "bgr8")

rospy.init_node('cam_tune', anonymous=True)
rospy.Subscriber("/usb_cam/image_raw/", Image, img_callback)

while not rospy.is_shutdown():
    if cv_image.size != (640*480*3):
        continue
    gray = cv2.cvtColor(cv_image, cv2.COLOR_BGR2GRAY)
    blur_gray = cv2.GaussianBlur(gray,(5, 5), 0)
    edge_img = cv2.Canny(np.uint8(blur_gray), 60, 70)

    cv2.imshow("original", cv_image)
    cv2.imshow("gray", gray)
    cv2.imshow("gaussian blur", blur_gray)
    cv2.imshow("edge", edge_img)
    
    cv2.waitKey(1)

 

2. 실행

python edge_cam.py

이 파이썬 파일만 실행하면 아무것도 실행되지 않는다.

 

3. rosbag 재생

다른 터미널 창을 열어서 rosbag 재생.

rosbag play cam_topic.bag

그러면 새로운 창이 열리면서 원본 영상이 재생되고,

코드에서 작성했듯이 grayscale영상, blur처리한 영상, edge검출한 영상이 재생된다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/02   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
글 보관함