Как я могу сделать 8-битное изображение или raw с помощью Arducam с Raspberry Pi;

#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
 

»’