Raspberry Pi Camera Module 3 NoIR Wide
Raspberry Pi Camera Module 3 NoIR Wide
The Raspberry Pi Camera Module 3 NoIR Wide is a high-quality camera module designed specifically for use with Raspberry Pi single-board computers. This camera module is part of the third generation of Raspberry Pi cameras, offering improved performance and features compared to its predecessors.
| The Raspberry Pi Camera Module 3 NoIR Wide is a wide-angle camera module that captures high-quality images and video. It is designed for use in various applications, including |
Computer vision projects
IoT applications
Surveillance systems
Robotics
Media centers
12-megapixel Sony IMX708 image sensor
Backside illumination (BSI) technology for improved low-light performance
Wide-angle lens with a 102 diagonal field of view
3.04 mm
f/2.1 aperture
Allows for nighttime photography and computer vision applications that require IR sensitivity
Suitable for use with external IR illuminators or LEDs
up to 12 megapixels (4032 x 3024)
up to 1080p at 30 fps, 720p at 60 fps, or 480p at 90 fps
15-pin MIPI CSI-2 interface connects directly to the Raspberry Pi board
Supports Raspberry Pi OS and other compatible operating systems
25 mm x 23 mm x 9 mm (1 inch x 0.9 inch x 0.35 inch)
10 grams (0.35 oz)
-20C to 70C (-4F to 158F)
-30C to 80C (-22F to 176F)
Compatible with Raspberry Pi 4, Raspberry Pi 3, Raspberry Pi 2, and Raspberry Pi 1
Also compatible with other single-board computers that support MIPI CSI-2 interfaces
Includes a 15-pin MIPI CSI-2 cable for connecting to the Raspberry Pi board
Raspberry Pi Camera Module 3 NoIR Wide case and mounting accessories available separately
The Raspberry Pi Camera Module 3 NoIR Wide offers improved performance, wider angle, and higher resolution compared to its predecessors, making it an ideal choice for various IoT and computer vision applications.
Raspberry Pi Camera Module 3 NoIR Wide DocumentationOverviewThe Raspberry Pi Camera Module 3 NoIR Wide is a high-quality camera module designed for use with Raspberry Pi boards. This module features a 12-megapixel Sony IMX708 sensor, improved low-light performance, and a wide-angle lens with a 102 field of view. The "NoIR" designation indicates that this module does not have an infrared filter, making it suitable for use in low-light conditions or with infrared illumination.Technical SpecificationsSensor: Sony IMX708, 1/2" format, 12-megapixel
Lens: Wide-angle, f/2.0, 102 field of view
Focus: Fixed focus, 1m to infinity
Interface: CSI-2 (Camera Serial Interface)
Resolution: Up to 4032x3042 pixels
Frame rate: Up to 30 fps at 1080p
Operating temperature: 0C to 50CCode Examples### Example 1: Capturing a Still Image using PythonThis example demonstrates how to capture a still image using the Raspberry Pi Camera Module 3 NoIR Wide and Python:
```python
import picamera# Create a PiCamera object
camera = picamera.PiCamera()# Set the camera resolution and format
camera.resolution = (4032, 3042)
camera.format = 'jpg'# Capture a still image
camera.capture('image.jpg')# Close the camera
camera.close()
```
This code creates a `PiCamera` object, sets the resolution and format, captures a still image, and saves it to a file named `image.jpg`.### Example 2: Streaming Video using OpenCV and PythonThis example demonstrates how to stream video from the Raspberry Pi Camera Module 3 NoIR Wide using OpenCV and Python:
```python
import cv2# Create a video capture object
cap = cv2.VideoCapture(0)while True:
# Read a frame from the camera
ret, frame = cap.read()
# Display the frame
cv2.imshow('Camera Feed', frame)
# Exit on key press
if cv2.waitKey(1) & 0xFF == ord('q'):
break# Release the video capture object
cap.release()
cv2.destroyAllWindows()
```
This code creates a video capture object using OpenCV, reads frames from the camera, displays them, and exits when the user presses the "q" key.### Example 3: Motion Detection using Python and OpenCVThis example demonstrates how to detect motion using the Raspberry Pi Camera Module 3 NoIR Wide, Python, and OpenCV:
```python
import cv2# Create a video capture object
cap = cv2.VideoCapture(0)while True:
# Read a frame from the camera
ret, frame = cap.read()
# Convert the frame to grayscale
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# Apply Gaussian blur
blur = cv2.GaussianBlur(gray, (21, 21), 0)
# Calculate the absolute difference between the current frame and the previous frame
frame_delta = cv2.absdiff(blur, cv2.imread('previous_frame.jpg', cv2.IMREAD_GRAYSCALE))
# Threshold the frame delta
thresh = cv2.threshold(frame_delta, 25, 255, cv2.THRESH_BINARY)[1]
# Find contours in the thresholded image
contours, _ = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
# Iterate through contours and draw a rectangle around the motion
for contour in contours:
if cv2.contourArea(contour) > 1000:
x, y, w, h = cv2.boundingRect(contour)
cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2)
# Display the output
cv2.imshow('Motion Detection', frame)
# Exit on key press
if cv2.waitKey(1) & 0xFF == ord('q'):
break# Release the video capture object
cap.release()
cv2.destroyAllWindows()
```
This code creates a video capture object, reads frames from the camera, applies motion detection using background subtraction and thresholding, and draws a rectangle around the detected motion.