#python #raspberry-pi #camera #opencv-python
Вопрос:
Я пытаюсь получить 8-битное изображение, которое я хочу использовать в качестве изображения маски после инвертирования. Однако я только что выяснил, что программа сохраняет необработанную дату в виде RGB-изображения, которое содержит идентичную информацию в каждом канале. Исходя из этого, я обнаружил, что моя программа привела к значительной потере информации о пикселях. Ниже приведен сценарий съемки изображения. Не могли бы вы посмотреть его и дать несколько предложений и советов по моему коду, чтобы решить эту проблему? Я также загрузил пример изображения (до инвертирования и его гистограмму после инвертирования.
Модель камеры является https://www.uctronics.com/arducam-ov9281-mipi-camera-module-1mp-monochrome-global-shutter-camera-2087.html.
»’
import arducam_mipicamera as arducam #importing libraries
import RPi.GPIO as GPIO
import v4l2
import time
GPIO.setmode(GPIO.BOARD) #listen for pins
GPIO.setwarnings(False)
GPIO.setup(32, GPIO.OUT) #LED; call pin 32 for use
LED = 32 #assign pin 32 to variable 'led'
#call arducam as camera and set resoultion
camera = arducam.mipi_camera() #name the camera
print("Open camera...")
camera.init_camera() #turn on the camera
print("Setting the resolution...")
fmt = camera.set_resolution(1280, 800) #set resolution
print("Current resolution is {}".format(fmt))
time.sleep(0.1) #wait for 0.1 second
#take the image when LED is on
try:
print("Setting the Exposure...")
camera.set_control(v4l2.V4L2_CID_EXPOSURE, ExposureTime) #Set relevant exposure time
except Exception as e:
print(e)
GPIO.output(LED, GPIO.LOW) #set led for first picture
time.sleep(0.2) #wait 0.2 seconds
fmt = (timestamp, Img) #set image title
frame = camera.capture(encoding = 'jpeg') #take image and store as 'jpeg'
frame.as_array.tofile(drct "{}x{}.jpg".format(fmt[0],fmt[1])) #finalize naming scheme and apply name for storage
GPIO.output(LED, GPIO.HIGH) #turn off led
»’