Verfälschte Bilder danach mit openCV nach stundenlanger VerwendungPython

Python-Programme
Guest
 Verfälschte Bilder danach mit openCV nach stundenlanger Verwendung

Post by Guest »

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>

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.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post