第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

在 PyQt 中動(dòng)態(tài)調(diào)整視頻大小

在 PyQt 中動(dòng)態(tài)調(diào)整視頻大小

不負(fù)相思意 2023-04-25 16:42:38
我正在用頭撞墻試圖弄清楚如何調(diào)整和重新排列我在 Raspberry Pi 上構(gòu)建的相機(jī)應(yīng)用程序。我希望能夠通過(guò)點(diǎn)擊視頻來(lái)調(diào)整窗口大小,從全屏應(yīng)用程序到將顯示在觸摸屏一角的較小版本。https://github.com/eighty2fifty1/multicam我正在使用 OpenCV 來(lái)運(yùn)行相機(jī)本身。雖然該應(yīng)用程序的目的是運(yùn)行 4 個(gè)攝像頭并在它們之間切換,但這一切都發(fā)生在外部硬件中,因此只需將其視為顯示一個(gè) USB 網(wǎng)絡(luò)攝像頭即可。我還沒(méi)有完全準(zhǔn)備好為此使用 OpenCV,但到目前為止它已經(jīng)奏效了。當(dāng)我嘗試調(diào)整窗口大小、最小化或最大化窗口時(shí),我的 RPi 4 似乎也出現(xiàn)分段錯(cuò)誤。不確定這是否相關(guān),但我已經(jīng)嘗試使用兩張全新的 SD 卡來(lái)排除硬件問(wèn)題。我試過(guò)的:以編程方式重新排列窗口。不會(huì)顯示視頻,還會(huì)給我一個(gè)分段錯(cuò)誤。將 MyWindowClass 子類(lèi)化為 BigWindowClass 和 SmallWindowClass,然后將單獨(dú)的 .ui 文件發(fā)送到它們各自的類(lèi),然后使用 .show() 和 .hide() 方法來(lái)確定我想顯示哪一個(gè)。這將在大窗口中顯示視頻,而不是小窗口。為了清楚起見(jiàn),我省略了一些函數(shù),但完整的源代碼在上面的 github 鏈接中。class Thread(QThread):    global file, big, small    changePixmap = pyqtSignal(QImage)    def run(self):        cap = cv2.VideoCapture(0)        while running:            ret, frame = cap.read()            if ret:                # not sure if the queue was necessary to prevent memory or processor problems                if q.qsize() < 10:                    q.put(frame)                else:                    print(q.qsize())                if not q.empty():                    f = q.get()                    rgbImage = cv2.cvtColor(f, cv2.COLOR_BGR2RGB)                    h, w, ch = rgbImage.shape                    bytesPerLine = ch * w                    convertToQtFormat = QImage(rgbImage.data, w, h, bytesPerLine, QImage.Format_RGB888)                    if file == big:                        p = convertToQtFormat.scaled(640, 480, Qt.KeepAspectRatio)                    elif file == small:                        p = convertToQtFormat.scaled(200, 150, Qt.KeepAspectRatio)                    else:                        pass                    self.changePixmap.emit(p)        if self.isFinished():            print("thread killed")class MyWindowClass(QMainWindow, form_class):    def __init__(self, parent=None):        QMainWindow.__init__(self, parent)        self.setupUi(self)        self.sel = Selector()        self.press = 0        self.rel = 0
查看完整描述

1 回答

?
GCT1015

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超4個(gè)贊

所以我自己找到了解決方案。它可能不是最優(yōu)雅或最有效的,但它正在工作。當(dāng)來(lái)自 OpenCV 的圖片太大以至于我需要先復(fù)制我的 QImage時(shí),我從 Qt 崩潰中得到了一個(gè)重要線索。

convertToQtFormat = QImage(rgbImage.data, w, h, bytesPerLine, QImage.Format_RGB888)

i = convertToQtFormat.copy()

self.changePixmap.emit(i)

我重新審視了對(duì)主窗口進(jìn)行子類(lèi)化并使用 2 個(gè)單獨(dú)的 .ui 文件的嘗試,經(jīng)過(guò)更多調(diào)整后,該程序按預(yù)期運(yùn)行。

查看完整回答
反對(duì) 回復(fù) 2023-04-25
  • 1 回答
  • 0 關(guān)注
  • 143 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)