欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識庫 > PyQt5實現將Matplotlib圖像嵌入到Scoll Area中顯示滾動條效果

PyQt5實現將Matplotlib圖像嵌入到Scoll Area中顯示滾動條效果

熱門標簽:沈陽人工外呼系統價格 武漢外呼系統平臺 如何申請400電話費用 沈陽防封電銷卡品牌 外呼系統哪些好辦 富錦商家地圖標注 江西省地圖標注 池州外呼調研線路 沈陽外呼系統呼叫系統

前言

如題目所述,又是花費了兩天的時間實現了該功能,本來今天下午有些心灰意冷,打算放棄嵌入到Scoll Area中的想法,但最后還是心里一緊,仔細梳理了一下邏輯,最終實現了功能

效果展示

注意:當你想實現一個子功能的時候,可以從新創建兩個文件:

×××.ui文件(如上圖效果展示是和我項目里的位置一樣的)×××.py文件(用來實現功能)

截圖

如上圖所示,紅色框里的文件是實現效果展示的所有源文件。但是文件夾testcode是為了實現將Matplotlib圖像嵌入到Scoll Area中所做的所有工作,稍后我會將參考資源放入文章末尾


一、解決步驟

1.1 qt designer

設計ui文件,控件的位置需要和自己項目中控件的位置相同,以便功能實現后方便項目調用

保存為testpiv.ui文件

1.2 pycharm編寫程序

直加看代碼不懂得話,建議查看1.3中的參考文章,我實現該功能也是來源于這些

代碼

import cv2
import os
import sys
import math


from PyQt5 import QtCore
from PyQt5.QtWidgets import *
from PyQt5.uic import loadUi

import matplotlib
from matplotlib import pyplot as plt
matplotlib.use("Qt5Agg")  # 聲明使用QT5
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
matplotlib.use("Qt5Agg")  # 聲明使用QT5
from matplotlib.backends.backend_qt5agg import NavigationToolbar2QT as NavigationToolbar


#創建一個matplotlib圖形繪制類
class MyFigure(FigureCanvas):
    def __init__(self,width, height, dpi):
         # 創建一個Figure,該Figure為matplotlib下的Figure,不是matplotlib.pyplot下面的Figure
        self.fig = plt.figure(figsize=(width, height), dpi=dpi)
         # 在父類中激活Figure窗口,此句必不可少,否則不能顯示圖形
        super(MyFigure,self).__init__(self.fig)
         # 調用Figure下面的add_subplot方法,類似于matplotlib.pyplot下面的subplot(1,1,1)方法


class scollarea_showpic(QMainWindow):

    def __init__(self, queryPath=None, samplePath=None,limit_value = None):
        super().__init__()
        self.queryPath = queryPath  # 圖庫路徑
        self.samplePath = samplePath  # 樣本圖片
        self.limit_value = limit_value
        self.ui()

        plt.rcParams['font.sans-serif'] = ['KaiTi']  # 只有這樣中文字體才可以顯示

    def ui(self):
        loadUi('./testpiv.ui', self)
        self.SIFT(self.queryPath,self.samplePath,self.limit_value)

    def getMatchNum(self,matches,ratio):
        '''返回特征點匹配數量和匹配掩碼'''
        matchesMask=[[0,0] for i in range(len(matches))]
        matchNum=0
        for i,(m,n) in enumerate(matches):
            if m.distance  ratio * n.distance: #將距離比率小于ratio的匹配點刪選出來
                matchesMask[i]=[1,0]
                matchNum+=1
        return (matchNum,matchesMask)

    def SIFT(self,dirpath,picpath,limit_value):
        # path='F:/python/gradu_design/gra_des/'

        queryPath=dirpath #圖庫路徑
        samplePath=picpath  #樣本圖片

        comparisonImageList=[] #記錄比較結果

        #創建SIFT特征提取器
        sift = cv2.xfeatures2d.SIFT_create()

        #創建FLANN匹配對象

        """
        FLANN是類似最近鄰的快速匹配庫
            它會根據數據本身選擇最合適的算法來處理數據
            比其他搜索算法快10倍
        """
        FLANN_INDEX_KDTREE=0
        indexParams=dict(algorithm=FLANN_INDEX_KDTREE,trees=5)
        searchParams=dict(checks=50)
        flann=cv2.FlannBasedMatcher(indexParams,searchParams)

        sampleImage=cv2.imread(samplePath,0)
        kp1, des1 = sift.detectAndCompute(sampleImage, None) #提取樣本圖片的特征
        for parent,dirnames,filenames in os.walk(queryPath):
            print('parent :',parent,'   ','dirnames :',dirnames)
            for p in filenames:
                p=queryPath+p
                # print('pic file name :',p)
                queryImage=cv2.imread(p,0)

                kp2, des2 = sift.detectAndCompute(queryImage, None) #提取比對圖片的特征

                matches=flann.knnMatch(des1,des2,k=2) #匹配特征點,為了刪選匹配點,指定k為2,這樣對樣本圖的每個特征點,返回兩個匹配

                (matchNum,matchesMask) = self.getMatchNum(matches,0.9) #通過比率條件,計算出匹配程度
                matchRatio=matchNum*100/len(matches)
                drawParams=dict(matchColor=(0,255,0),
                        singlePointColor=(255,0,0),
                        matchesMask=matchesMask,
                        flags=0)
                comparisonImage=cv2.drawMatchesKnn(sampleImage,kp1,queryImage,kp2,matches,None,**drawParams)
                comparisonImageList.append((comparisonImage,matchRatio)) #記錄下結果

        comparisonImageList.sort(key=lambda x:x[1],reverse=True) #按照匹配度排序  降序

        new_comparisonImageList = comparisonImageList[:limit_value]
        count=len(new_comparisonImageList)

        column = 1 # 列
        row = math.ceil(count/column) # 行   math.ceil: 函數返回大于或等于一個給定數字的最小整數
        print('列:',column,  '  ','行:',row)

        #繪圖顯示
        F = MyFigure(width=10, height=10, dpi=100)  # 500 * 400

        for index,(image,ratio) in enumerate(new_comparisonImageList):
            F.axes = F.fig.add_subplot(row,column,index+1)
            F.axes.set_title('Similiarity %.2f%%' % ratio)
            plt.imshow(image)
            # 調整subplot之間的間隙大小
            plt.subplots_adjust(hspace=0.2)

        self.figure = F.fig
        # FigureCanvas:畫布
        self.canvas = FigureCanvas(self.figure)  # fig 有 canvas
        self.canvas.resize(self.picwidget.width(), 3000) # 畫布大小
        self.scrollArea = QScrollArea(self.picwidget)  # picwidget上有scroll
        self.scrollArea.setFixedSize(self.picwidget.width(), self.picwidget.height())
        self.scrollArea.setWidget(self.canvas)  # widget上有scroll   scroll有canvas

        self.nav = NavigationToolbar(self.canvas, self.picwidget)  # 創建工具欄

        self.setMinimumSize(self.width(), self.height())
        self.setMaximumSize(self.width(), self.height())
        self.setWindowTitle('Test')
if __name__ == "__main__":
    app = QApplication(sys.argv)
    queryPath='F:/python/gradu_design/gra_des/imges/' #圖庫路徑
    samplePath='F:/python/gradu_design/gra_des/imges/resized_logo1_1.jpg'  #樣本圖片
    main = scollarea_showpic(queryPath,samplePath,3)
    main.show()

    sys.exit(app.exec_())

下載地址

源碼下載:test_scollarea.py


總結

從目前我的認知來講,你想要實現的功能,基本上換一種思路、想法,都是可能會有解決方案的,只不過可能難度不同,你需要投入的精力不同。

結合本篇博客來說,從我產生這個想法來說,我一直在找資料,從一開始的簡單搜索同一個內容到后面轉變搜索思路,到最后梳理邏輯框架、代碼,最后實現功能,此過程耗費的時間(兩天多)不算長,但也不算短。中間的過程是煎熬的,幾次試圖想放棄,最后還是挺了過來,還是很開心的。

只要不放棄,你就可以!

以上就是PyQt5實現將Matplotlib圖像嵌入到Scoll Area中顯示滾動條效果的詳細內容,更多關于PyQt5 Matplotlib圖像嵌入的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • PyQt5 matplotlib畫圖不刷新的解決方案
  • PyQt5結合matplotlib繪圖的實現示例
  • 詳解pyqt5的UI中嵌入matplotlib圖形并實時刷新(挖坑和填坑)
  • 利用PyQt5+Matplotlib 繪制靜態/動態圖的實現代碼
  • pyqt5與matplotlib的完美結合實例
  • python GUI庫圖形界面開發之PyQt5滾動條控件QScrollBar詳細使用方法與實例
  • 在PYQT5中QscrollArea(滾動條)的使用方法

標簽:黑龍江 常德 銅川 呂梁 通遼 潛江 阿里 株洲

巨人網絡通訊聲明:本文標題《PyQt5實現將Matplotlib圖像嵌入到Scoll Area中顯示滾動條效果》,本文關鍵詞  PyQt5,實,現將,Matplotlib,圖像,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PyQt5實現將Matplotlib圖像嵌入到Scoll Area中顯示滾動條效果》相關的同類信息!
  • 本頁收集關于PyQt5實現將Matplotlib圖像嵌入到Scoll Area中顯示滾動條效果的相關信息資訊供網民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    久久精品欧美日韩精品 | www在线观看免费视频| 91福利精品第一导航| 中文字幕国产一区| 国产一区二区按摩在线观看| 性欧美精品中出| 精品日韩一区二区| 蜜桃免费网站一区二区三区| a视频免费观看| 91精品国产欧美日韩| 丝袜亚洲精品中文字幕一区| 欧美丰满熟妇bbb久久久| 欧美日韩免费视频| 亚洲小少妇裸体bbw| 中文字幕18页| 欧美高清视频在线高清观看mv色露露十八 | 黄色正能量网站| 精品日产卡一卡二卡麻豆| 免费av成人在线| 波多野吉衣中文字幕| 久久久久久久久久久久久久久99| 国产麻豆午夜三级精品| 黄色免费一级视频| 国产精品美女视频| av不卡一区二区三区| 欧美日韩一级视频| 天天综合网天天综合色| 日本黄色片在线播放| 欧美不卡123| 国产乱码精品一品二品| 国产午夜手机精彩视频| 亚洲欧美日韩在线不卡| 日韩女优在线视频| 91麻豆精品91久久久久同性| 蜜臀精品一区二区三区在线观看| 日韩av片在线| 国产精品视频麻豆| 91免费在线看| 欧美一二三四在线| 国产一区三区三区| 色欧美乱欧美15图片| 亚洲国产欧美在线人成| 在线 丝袜 欧美 日韩 制服| 91视频在线免费| 91精品国产免费| 国内精品写真在线观看| 欧美一区二区三区爽爽爽| 亚洲精品成人在线| 久久国产精品无码一级毛片| 国产日本一区二区| 91在线播放网址| 欧美一区二区精美| 国产很黄免费观看久久| 欧美色综合久久| 久久91精品国产91久久小草| 欧美精品久久久久久久久46p| 亚洲高清免费在线| av在线播放中文字幕| 亚洲乱码国产乱码精品精的特点| 亚洲天堂网一区二区| 久久久久久久久久久久久久久99 | 蜜臂av日日欢夜夜爽一区| 亚洲少妇xxx| 亚洲图片欧美综合| 亚洲精品成人av久久| 亚洲激情五月婷婷| 美女被到爽高潮视频| 亚洲女与黑人做爰| 熟女俱乐部一区二区视频在线| 1024成人网色www| yy1111111| 中文字幕视频一区二区三区久| 制服丝袜第二页| 成人免费在线观看入口| 香蕉视频黄色在线观看| 亚洲免费在线视频| 国产真人做爰视频免费| 亚洲一级片在线观看| 国产3级在线观看| 午夜成人免费视频| 四虎精品免费视频| 久色婷婷小香蕉久久| 在线观看亚洲一区| 国产美女精品人人做人人爽| 在线播放一区二区三区| 成人免费高清视频| 久久久亚洲欧洲日产国码αv| 国产ts在线观看| 国产精品久久久久久一区二区三区| 黄色性生活一级片| 亚洲国产精品久久人人爱| 999精品视频在线观看播放| 日韩精彩视频在线观看| 在线观看亚洲精品视频| 懂色av一区二区夜夜嗨| 精品国产91乱码一区二区三区 | av午夜精品一区二区三区| 久久综合久久久久88| 9.1在线观看免费| 亚洲欧美经典视频| 天天操天天摸天天舔| 美女在线视频一区| 91精品国产综合久久久久久| 精品人妻一区二区三区免费| 国产精品嫩草99a| 手机毛片在线观看| 免费高清在线一区| 欧美一区二区在线免费观看| 国产裸体视频网站| 亚洲欧美国产高清| 无码人妻精品一区二区三区夜夜嗨| 极品美女销魂一区二区三区 | 国产精品乱码一区二区三区软件 | 欧产日产国产v| 国产成人在线网站| 久久影视一区二区| 亚洲一级中文字幕| 免费日韩伦理电影| 91精品国产综合久久久蜜臀图片 | 美女100%露胸无遮挡| 美女诱惑一区二区| 精品国产乱码久久久久久浪潮| 一女三黑人理论片在线| 日韩av在线播放中文字幕| 91精品国产手机| 亚洲男同性视频| 精品人妻伦九区久久aaa片| 国产凹凸在线观看一区二区| 欧美国产亚洲另类动漫| 中文乱码字幕高清一区二区| 国产成人午夜精品5599| 国产精品免费av| 国产探花在线播放| 91免费在线视频观看| 一区二区三区四区蜜桃| 欧美午夜精品久久久久久超碰| 男生和女生一起差差差视频| 亚洲一区二区欧美日韩| 欧美日本高清视频在线观看| www.17c.com喷水少妇| 日韩电影在线观看网站| 日韩欧美中文一区二区| 中文字幕人妻一区二区三区在线视频| 久久爱www久久做| 日本一区二区不卡视频| 欧美人禽zoz0强交| 91一区在线观看| 亚洲mv大片欧洲mv大片精品| 日韩免费看的电影| 极品尤物一区二区| 成人性视频免费网站| 亚洲人成7777| 69堂成人精品免费视频| 自拍偷拍中文字幕| 国产高清亚洲一区| 亚洲免费视频中文字幕| 在线电影国产精品| 免费一级做a爰片久久毛片潮| 国产伦精品一区二区三区免费迷| 中文字幕av一区二区三区| avove在线播放| 国产乱淫av麻豆国产免费| 日韩电影免费在线看| 久久久亚洲高清| 色综合天天在线| 国产极品一区二区| 激情综合色综合久久综合| 欧美国产视频在线| 精品视频在线免费观看| 亚洲第一黄色网址| 国产精品996| 亚洲午夜久久久久| 精品国精品国产尤物美女| 男女做暖暖视频| 中文字幕影片免费在线观看| 国产一区日韩二区欧美三区| 一区二区三区日韩欧美精品 | 欧美绝品在线观看成人午夜影视| 四虎永久免费在线观看| gogo大胆日本视频一区| 日本中文字幕一区二区有限公司| 国产欧美一区二区三区在线老狼| 欧美亚洲免费在线一区| 波多野结衣片子| 99久久夜色精品国产网站| 日韩中文字幕91| 最新国产精品久久精品| 日韩天堂在线观看| 可以免费看av的网址| 一级少妇精品久久久久久久| 国产精品一区一区| 五月婷婷综合激情| 国产精品毛片a∨一区二区三区| 337p亚洲精品色噜噜噜| 欧美日韩色视频| 人妻在线日韩免费视频| 99精品一区二区| 国内国产精品久久| 亚洲成va人在线观看| 国产精品网站在线播放|