2016-04-24 5 views
2

У меня есть веб-камера Microsoft USB, связанная с моей малиной Pi 2B, но иногда у меня есть абсолютно белая фотография, а иногда и обычная картина. См. Изображение, это похоже на то, что изображение разоблачено.Веб-камера USB Microsoft - над открытым изображением - проблема с кодом?

См изображение здесь: https://www.raspberrypi.org/forums/download/file.php?id=14467

Это то, что может быть исправлено с некоторыми изменениями на коде? Я добавил уже какое-то время до и после этого, картина сделана, но это не решение - time.sleep(t).

Код, который я в настоящее время используют

import os 
import pygame, sys 
from pygame.locals import * 
import pygame.camera 

width = 1280 
height = 720 

#initialise pygame 
pygame.init() 
pygame.camera.init() 
cam = pygame.camera.Camera("/dev/video0",(width,height)) 

cam.start() 
#setup window 
windowSurfaceObj = pygame.display.set_mode((width,height),1,32) 
pygame.display.set_caption('Camera') 
#take a picture 
time.sleep(4) 
image = cam.get_image() 
time.sleep(1) 
cam.stop() 

#display the picture 
catSurfaceObj = image 
windowSurfaceObj.blit(catSurfaceObj,(0,0)) 
pygame.display.update() 

#save picture 
pygame.image.save(windowSurfaceObj,'/home/pi/python/data/usbwebcamimage.jpg') 

используется USB-камеры: https://www.microsoft.com/hardware/en-gb/p/lifecam-cinema

Спасибо за обратную связь!

ответ

0

Честно говоря, я не думаю, что это то, что может быть исправлено с помощью кода, поскольку вы не манипулируете изображением.

Я посмотрел на камеру, которую вы используете, и использует автофокус, поэтому его можно сфокусировать на более темной области и компенсировать, делая изображение ярче. Посмотрите на что-то, что называется автоэкспозицией: http://www.webopedia.com/TERM/A/automatic_exposure_mode.html

Можно ли его установить по коду? Возможно, в зависимости от того, для чего нужна камера.

Если вам не нужен цвет, то использование следующего кода должно привести к уменьшению экспозиции.

Код:

def histeq(im, nbr_bins=256): 
    """ Histogram equalization of a grayscale image. """ 

    imhist, bins = np.histogram(im.flatten(), nbr_bins, normed=True) 

    cdf = imhist.cumsum() 
    cdf = 255 * cdf/cdf[-1] 

    im2 = np.interp(im.flatten(), bins[:-1], cdf) 

    return im2.reshape(im.shape), cdf 


def lowerImage(image): 

    image = np.array(Image.open(image).convert("F")) 

    newimage, cdf = histeq(image) 

    FinalImage = Image.fromarray(newimage).convert("RGB") 

    FinalImage.save("equal.jpg") # Change the name to whatever you want to 

До:

Your Image

После:

Output Image

То, что это называется, является «выравниванием гистограммы», и то, что он делает, равномерно распределяет значения на гистограмме. Как вы можете видеть на втором изображении, вы восстанавливаете детали в листе, проводах и ограждениях.

Хотя это действительно помогает, на самом деле он не может много сделать, если вся фотография белая. Это, скорее всего, камера, предназначенная для более темной области изображения.

Если вам нужен цвет, токните вокруг с numpy.array и scipy.misc.imsave, чтобы увидеть, можете ли вы получить массив с цветом.

Подводя итог:

  1. Вполне возможно, что его просто аппаратные средства, так что постарайтесь, чтобы увидеть, если вы можете выставить камеру вручную.
  2. Чтобы помочь, если фотография закончилась, используйте код, указанный выше.

 Смежные вопросы

  • Нет связанных вопросов^_^