Ich benutze ein Dinolite -Mikroskop, um Teile zu steuern. Aber nach stundenlangem Gebrauch wird das Bild beschädigt. Ich verwende Pyside6 mit offenem Lebenslauf
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
- ist Kameraparameter
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)
Ich finde diesen Fehlerursprung nicht.
Ich benutze ein Dinolite -Mikroskop, um Teile zu steuern. Aber nach stundenlangem Gebrauch wird das Bild beschädigt. Ich verwende Pyside6 mit offenem Lebenslauf
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>
[list]
[*][code]list[0][/code] ist ein Qimage
[*][code]list[1][/code] ist Kameraparameter
[/list]
[code] @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)
[/code]
Ich finde diesen Fehlerursprung nicht.