Sie finden das Bild und meinen Code hier. Die Bilder sind in Farbe, aber für den Versuch korrigiere ich die Helligkeit nicht. JPG " /> < /p>
[img]0, parent=None):
self.src = src
self.isRunning = True
self.camera = None
self.round = 1
self.datas = [0,0,0,0,0,0,0,0,0]
def run(self) :
self.camera = cv2.VideoCapture(int(self.src), cv2.CAP_DSHOW)
while self.isRunning:
ret, frame = self.camera.read()
if ret :
rgbImage = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
h, w, ch = rgbImage.shape
bytesPerLine = ch * w
convertToQtFormat = QImage(rgbImage.data, w, h, bytesPerLine, QImage.Format_RGB888)
p = convertToQtFormat.scaled(640, 480, Qt.KeepAspectRatio)
if self.round == 1 :
self.datas[0] = self.camera.get(cv2.CAP_PROP_FRAME_HEIGHT)
self.datas[1] = self.camera.get(cv2.CAP_PROP_FRAME_WIDTH)
self.datas[2] = self.camera.get(cv2.CAP_PROP_EXPOSURE)
self.datas[3] = self.camera.get(cv2.CAP_PROP_BRIGHTNESS)
self.datas[4] = self.camera.get(cv2.CAP_PROP_CONTRAST)
self.datas[5] = self.camera.get(cv2.CAP_PROP_SATURATION)
self.datas[6] = self.camera.get(cv2.CAP_PROP_HUE)
self.datas[7] = self.camera.get(cv2.CAP_PROP_GAIN)
self.datas[8] = self.camera.get(cv2.CAP_PROP_SHARPNESS)
self.round+=1
self.image.emit([p, self.datas, frame])
def stop(self):
self.isRunning=False
def close(self) :
self.stop()
self.quit()
self.terminate()
def resolution(self, x, y) :
self.stop()
self.camera.set(cv2.CAP_PROP_FRAME_WIDTH, int(x))
self.camera.set(cv2.CAP_PROP_FRAME_HEIGHT, int(y))
self.round = 1
self.isRunning = True
#self.run()
def properties(self) :
self.stop()
self.camera.set(cv2.CAP_PROP_SETTINGS, 1)
self.isRunning = True
#self.run()
def parameters(self, datas) :
self.stop()
self.camera.get(cv2.CAP_PROP_FRAME_HEIGHT, datas[0])
self.camera.get(cv2.CAP_PROP_FRAME_WIDTH, datas[1])
self.camera.get(cv2.CAP_PROP_EXPOSURE, datas[2])
self.camera.get(cv2.CAP_PROP_BRIGHTNESS, datas[3])
self.camera.get(cv2.CAP_PROP_CONTRAST, datas[4])
self.camera.get(cv2.CAP_PROP_SATURATION, datas[5])
self.camera.get(cv2.CAP_PROP_HUE, datas[6])
self.camera.get(cv2.CAP_PROP_GAIN, datas[7])
self.camera.get(cv2.CAP_PROP_SHARPNESS, datas[8])
self.round = 1
self.isRunning = True
def read_parameters(self) :
self.datas[0] = self.camera.get(cv2.CAP_PROP_FRAME_HEIGHT)
self.datas[1] = self.camera.get(cv2.CAP_PROP_FRAME_WIDTH)
self.datas[2] = self.camera.get(cv2.CAP_PROP_EXPOSURE)
self.datas[3] = self.camera.get(cv2.CAP_PROP_BRIGHTNESS)
self.datas[4] = self.camera.get(cv2.CAP_PROP_CONTRAST)
self.datas[5] = self.camera.get(cv2.CAP_PROP_SATURATION)
self.datas[6] = self.camera.get(cv2.CAP_PROP_HUE)
self.datas[7] = self.camera.get(cv2.CAP_PROP_GAIN)
self.datas[8] = self.camera.get(cv2.CAP_PROP_SHARPNESS)
< /code>
Der Steckplatz: < /p>
- ist ein Qimage
Code: Select all
list[0]
- ist Kameraparameter
Code: Select all
list[1]
Code: Select all
@Slot(list)
def set_and_save_image_0(self, list):
if self.btn_auto.isChecked() :
self.array[0] = list[0]
# Update image
if self.widget_cams.image_test[0].isVisible() and self.btn_settings.isChecked() :
self.widget_cams.image_test[0].setPixmap(QPixmap.fromImage(list[0]))
#$Print datas
if list[1] != self.datas_before :
print(list[1])
try :
self.widget_cams.update_exposure(indice = 0)
except Exception as e :
print(str(e))
self.datas_before = list[1]
< /code>
Wenn ich ein Bild speichern möchte, mache ich < /p>
path_select = os.path.join(basedir, 'test'+str(0)+'.jpg')
self.array[0].save(path_select)
shutil.copy(path_select, path_image)