Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions src/.vscode/c_cpp_properties.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"configurations": [
{
"browse": {
"databaseFilename": "${default}",
"limitSymbolsToIncludedHeaders": false
},
"includePath": [
"/opt/ros/rolling/include/**",
"/usr/include/**"
],
"name": "ROS",
"intelliSenseMode": "gcc-x64",
"compilerPath": "/usr/bin/gcc",
"cStandard": "gnu11",
"cppStandard": "c++14"
}
],
"version": 4
}
8 changes: 8 additions & 0 deletions src/.vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"python.autoComplete.extraPaths": [
"/opt/ros/rolling/lib/python3.10/site-packages"
],
"python.analysis.extraPaths": [
"/opt/ros/rolling/lib/python3.10/site-packages"
]
}
20 changes: 20 additions & 0 deletions src/image_processes/.vscode/c_cpp_properties.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"configurations": [
{
"browse": {
"databaseFilename": "${default}",
"limitSymbolsToIncludedHeaders": false
},
"includePath": [
"/opt/ros/rolling/include/**",
"/usr/include/**"
],
"name": "ROS",
"intelliSenseMode": "gcc-x64",
"compilerPath": "/usr/bin/gcc",
"cStandard": "gnu11",
"cppStandard": "c++14"
}
],
"version": 4
}
12 changes: 12 additions & 0 deletions src/image_processes/.vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"python.autoComplete.extraPaths": [
"/home/garima/first_ws/install/robot_controller/lib/python3.10/site-packages",
"/home/garima/first_ws/install/image_processes/lib/python3.10/site-packages",
"/opt/ros/rolling/lib/python3.10/site-packages"
],
"python.analysis.extraPaths": [
"/home/garima/first_ws/install/robot_controller/lib/python3.10/site-packages",
"/home/garima/first_ws/install/image_processes/lib/python3.10/site-packages",
"/opt/ros/rolling/lib/python3.10/site-packages"
]
}
Empty file.
38 changes: 38 additions & 0 deletions src/image_processes/image_processes/import cv2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import cv2
import pygame
import pygame.camera
pygame.camera.init()
camlist = pygame.camera.list_cameras()
if camlist :
cam=pygame.camera.Camera(camlist[0],(640,480))
cam.start()
image = cam.get_image()
pygame.image.save(image,"filename.jpg")
else:
print("no")

cam = cv2.VideoCapture(0)

cv2.namedWindow("test")

img_counter = 0

while True:
ret, frame = cam.read()
if not ret:
print("failed to grab frame")
break
cv2.imshow("test", frame)

k = cv2.waitKey(1)
if k%256 == 27:
# ESC pressed
print("Escape hit, closing...")
break
elif k%256 == 32:
# SPACE pressed
img_name = "opencv_frame_{}.png".format(img_counter)
cv2.imwrite(img_name, frame)
print("{} written!".format(img_name))
img_counter += 1
cam.release()
Binary file added src/image_processes/image_processes/sample.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
176 changes: 176 additions & 0 deletions src/image_processes/image_processes/webcam_display.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,176 @@
#!/usr/bin/env python3
'''import rclpy
from rclpy.node import Node
from sensor_msgs.msg import Image
import cv2
from cv_bridge import CvBridge

class node3(Node):
def __init__(self):
super().__init__('webcam_display')
self.subscription_ = self.create_subscription(
Image,
'webcam_cropped',
self.display_image,
10
)
self.bridge = CvBridge()

def display_image(self, msg):
frame = self.bridge.imgmsg_to_cv2(msg, desired_encoding='bgr8')
cv2.imshow('Webcam Cropped', frame)
cv2.waitKey(1)

def main(args=None):
rclpy.init(args=args)
webcam_display = node3()
rclpy.spin(webcam_display)
webcam_display.destroy_node()
rclpy.shutdown()
cv2.destroyAllWindows()

if __name__ == '__main__':
main()'''

'''import rospy
from sensor_msgs.msg import Image
from cv_bridge import CvBridge
import cv2

def node3():
rospy,init_node('node3',anonymous = True)
rospy.Subscriber('Webcam_cropped',Image,show_image_callback)

rospy.spin()

def show_image_callback(image_frame):
cv_bridge = CvBridge()
cv_image = cv_bridge.imgmsg_to_cv2(image_frame,desired_encoding='bgr8')
cv2.imshow('Webcam_cropped',cv_image)
cv2.waitkey(1)

if __name__ = '__main__':
try:
node3()
except rospy.ROSInterruptException:
pass
'''

'''import rclpy
from sensor_msgs.msg import Image
from cv_bridge import CvBridge
import cv2

def node3():
rclpy.init()
node = rclpy.create_node('node3')

cv_bridge = CvBridge()

def show_image_callback(image_frame):
cv_image = cv_bridge.imgmsg_to_cv2(image_frame, desired_encoding='bgr8')
cv2.imshow('Webcam_cropped', cv_image)
cv2.waitKey(1)

subscription = node.create_subscription(Image, 'Webcam_cropped', show_image_callback, 10)

rclpy.spin(node)

node.destroy_node()
rclpy.shutdown()

if __name__ == '__main__':
try:
node3()
except KeyboardInterrupt:
pass
'''

#!/usr/bin/env python3
#!/usr/bin/env python3

'''import os
import sys
import cv2
import rclpy
from rclpy.node import Node
from sensor_msgs.msg import Image
from cv_bridge import CvBridge

class ImageViewer(Node):
def __init__(self):
super().__init__('image_viewer')
self.subscription = self.create_subscription(
Image,
'webcam_cropped',
self.image_callback,
10
)
self.subscription # prevent unused variable warning
self.bridge = CvBridge()

def image_callback(self, msg):
try:
# Convert the ROS Image message to an OpenCV image
image = self.bridge.imgmsg_to_cv2(msg, desired_encoding='bgr8')
except Exception as e:
self.get_logger().error('Failed to convert image: {}'.format(e))
return

# Display the image in a window
cv2.imshow('Webcam Cropped', image)
cv2.waitKey(1)

def main(args=None):
rclpy.init(args=args)
image_viewer = ImageViewer()
rclpy.spin(image_viewer)
cv2.destroyAllWindows()
rclpy.shutdown()

if __name__ == '__main__':
main()
'''

#!/usr/bin/env python

import rclpy
from rclpy.node import Node
from sensor_msgs.msg import Image
from cv_bridge import CvBridge
import cv2

class ImageViewer(Node):
def __init__(self):
super().__init__('image_viewer')
self.subscription = self.create_subscription(
Image,
'cropped_img',
self.image_callback,
10
)
self.bridge = CvBridge()

def image_callback(self, msg):
# Convert the ROS Image message to a CV image
cv_image = self.bridge.imgmsg_to_cv2(msg, desired_encoding='bgr8')

# Display the image
cv2.imshow('Cropped Image', cv_image)
cv2.waitKey(1)

def main(args=None):
rclpy.init(args=args)
image_viewer = ImageViewer()
try:
rclpy.spin(image_viewer)
except KeyboardInterrupt:
pass

# Destroy the OpenCV windows and clean up
cv2.destroyAllWindows()
image_viewer.destroy_node()
rclpy.shutdown()

if __name__ == '__main__':
main()
Loading