国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

基于Qt5的圖像交互控件開發(fā)(C++實現(xiàn))

這篇具有很好參考價值的文章主要介紹了基于Qt5的圖像交互控件開發(fā)(C++實現(xiàn))。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


前言

博主近期看到海康VM、halcon以及visionpro視覺軟件都包含一個圖像智能交互控件,然后近期根據(jù)其中的技術(shù)原理,也基于Qt5仿照開發(fā)了一個類似的功能,包含矩形、旋轉(zhuǎn)矩形、任意多邊形、圓、圓環(huán)、扇環(huán),直線卡尺以及圓卡尺等常用控件,圖像智能交互是在計算機視覺領(lǐng)域中常用的技術(shù),用于視覺軟件圖像ROI,廣泛應(yīng)用于工業(yè)自動化、機器視覺等領(lǐng)域。具體效果如下:

Qt5圖像智能交互控件


一、圖像交互控件

1.1 概述

在機器視覺領(lǐng)域,常用的圖像交互控件包括以下幾種:

  1. 標注工具(Annotation Tools):標注工具允許用戶在圖像上進行標注和繪制,例如繪制邊界框。這些標注可用于圖像分類、目標檢測、語義分割等任務(wù)的數(shù)據(jù)標注。

  2. 拖動和調(diào)整工具(Drag and Adjust Tools):這些工具允許用戶通過拖動或調(diào)整圖像中的特定區(qū)域來進行交互。例如,可以拖動邊界框或控制點來調(diào)整目標的位置、大小或形狀。

  3. 交互式區(qū)域選擇工具(Interactive Region Selection Tools):這些工具允許用戶通過繪制、拖動或選擇特定區(qū)域來指定感興趣的區(qū)域。例如,用戶可以使用矩形選擇工具、多邊形選擇工具或魔棒工具來選擇圖像中的目標或區(qū)域。

  4. 縮放和導航工具(Zoom and Navigation Tools):這些工具用于在圖像上進行縮放、平移和導航操作,以便用戶可以查看和分析圖像的不同部分。常見的縮放和導航工具包括放大、縮小、平移和旋轉(zhuǎn)操作。

  5. 參數(shù)調(diào)整滑塊(Parameter Adjustment Sliders):在機器視覺任務(wù)中,一些算法或模型可能需要調(diào)整不同的參數(shù)或閾值。參數(shù)調(diào)整滑塊允許用戶通過滑動滑塊來調(diào)整參數(shù)的值,并實時觀察算法或模型的輸出變化。

博主采用交互控件寫的兩個文章如下:
第一個:利用OpenCV與Qt5構(gòu)建卡尺擬合直線工具(C++實現(xiàn))
第二個:利用OpenCV與Qt5構(gòu)建卡尺找圓工具(C++實現(xiàn))

1.2 圖像顯示交互功能

本文采用Qt5的QGraphicsView顯示圖像控件,QGraphicsScene用來管理圖形交互控件,Qt5中的QGraphicsView是一個圖形視圖框架,用于在應(yīng)用程序中顯示和交互2D圖形。它是Qt的圖形模塊(Graphics Module)提供的一部分,為開發(fā)者提供了一個靈活的工具來創(chuàng)建基于圖形的用戶界面。

QGraphicsView的主要功能包括:

  1. 圖形顯示:QGraphicsView允許開發(fā)者在視圖中顯示2D圖形項(Graphics Item),例如圖像、文本、幾何圖形、路徑等。這些圖形項可以自定義外觀、位置和交互行為。

  2. 縮放和平移:通過QGraphicsView,用戶可以通過鼠標滾輪或手勢來縮放視圖中的圖形,以及通過鼠標拖動來平移視圖。這使用戶能夠查看和導航大型或超出視圖邊界的圖形。

  3. 坐標系統(tǒng):QGraphicsView提供了一個坐標系統(tǒng),允許用戶在視圖中進行圖形項的定位和操作。開發(fā)者可以指定視圖中的邏輯坐標,并使用這些坐標來添加、移動和變換圖形項。

  4. 交互操作:通過QGraphicsView,開發(fā)者可以實現(xiàn)豐富的交互功能,例如選擇圖形項、拖動圖形項、縮放選定的圖形項等。這些交互操作可以通過重寫相應(yīng)的事件處理函數(shù)來實現(xiàn)。

  5. 雙緩沖繪制:QGraphicsView使用雙緩沖技術(shù),以提供平滑的繪制和動畫效果。它可以高效地處理大量圖形項的繪制,并自動進行局部更新,以減少繪制的開銷。

  6. 視圖和場景:QGraphicsView與QGraphicsScene一起使用,QGraphicsScene提供了圖形項的容器,并管理它們之間的關(guān)系。QGraphicsView充當了場景的視圖,用于在窗口中顯示場景中的圖形項。

1.3 棋盤格功能實現(xiàn)

qt圖片控件,OpenCV,工業(yè)視覺小項目案例,QT5,qt,交互,c++,計算機視覺,目標檢測

圖像顯示為棋盤格實現(xiàn)代碼如下:

void myqgraphicsview::drawBackground(QPainter * painter, const QRectF & rect)
{
    //繪制灰白棋盤圖像背景
    int wid = this->geometry().width();
    int hei = this->geometry().height();
    QPointF m_ptCenter = this->mapToScene(wid / 2, hei / 2);
    QPixmap pix(wid, hei);
    QPainter pter(&pix);
    QColor clr_white(Qt::white);
    QColor clr_gray(240, 240, 240, 240);
    int spacing = 15;
    QColor useColor;
    for (int i = 0; i <= floor(wid / spacing); i++)
    {
        for (int j = 0; j <= floor(hei / spacing); j++)
        {
            useColor = ((i + j) % 2 == 0 ? clr_white : clr_gray);
            pter.fillRect(i*spacing, j*spacing, spacing, spacing, useColor);
        }
    }
    painter->drawImage(rect, pix.toImage());
}

1.4 形狀控件基類

QAbstractGraphicsShapeItem是Qt中的一個抽象基類,用于表示具有形狀的圖形項(Graphics Item)。它是QGraphicsItem的子類,用于在QGraphicsScene中顯示和操作2D圖形。

QAbstractGraphicsShapeItem的主要特征和功能如下:

  1. 形狀定義:它定義了一個圖形項的形狀,可以是矩形、橢圓、多邊形等。開發(fā)者可以通過重寫shape()函數(shù)來自定義形狀。

  2. 外觀樣式:它具有一系列用于設(shè)置圖形項外觀的函數(shù),如設(shè)置邊框顏色、填充顏色、線寬等。通過這些函數(shù),可以定制圖形項的外觀樣式。

  3. 碰撞檢測:它提供了一些用于碰撞檢測的函數(shù),如collidesWithItem()和collidesWithPath()。這些函數(shù)可用于判斷圖形項與其他圖形項或路徑是否發(fā)生碰撞。

  4. 交互操作:通過重寫鼠標事件處理函數(shù),可以實現(xiàn)與QAbstractGraphicsShapeItem的交互操作,如鼠標點擊、拖動、移動等??梢愿鶕?jù)需要進行自定義的交互行為。

  5. 變換和位置:它繼承了QGraphicsItem的功能,可以進行圖形項的位置設(shè)置、旋轉(zhuǎn)、縮放等變換操作。

QAbstractGraphicsShapeItem是一個抽象基類,不能直接實例化,需要通過繼承并重寫其純虛函數(shù)來創(chuàng)建具體的形狀圖形項。常見的具體子類包括QGraphicsRectItem(矩形圖形項)、QGraphicsEllipseItem(橢圓圖形項)和QGraphicsPolygonItem(多邊形圖形項)等,它們分別提供了矩形、橢圓和多邊形形狀的圖形項。使用QAbstractGraphicsShapeItem及其子類,開發(fā)者可以方便地創(chuàng)建具有形狀和外觀樣式的2D圖形項,并在QGraphicsScene中進行顯示、交互和操作。這為繪圖、圖形編輯、數(shù)據(jù)可視化等應(yīng)用提供了強大的圖形繪制和操作功能。

1.5 鼠標交互實現(xiàn)

    virtual void hoverEnterEvent(QGraphicsSceneHoverEvent *event) override;
    virtual void hoverMoveEvent(QGraphicsSceneHoverEvent *event) override;
    virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent *event) override;
    virtual void mousePressEvent(QGraphicsSceneMouseEvent* event) override;
    virtual void mouseMoveEvent(QGraphicsSceneMouseEvent* event) override;
    virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event) override;

二、功能展示

2.1 圖像加載

qt圖片控件,OpenCV,工業(yè)視覺小項目案例,QT5,qt,交互,c++,計算機視覺,目標檢測

2.2 圖像放大

qt圖片控件,OpenCV,工業(yè)視覺小項目案例,QT5,qt,交互,c++,計算機視覺,目標檢測

2.3 圖像縮小

qt圖片控件,OpenCV,工業(yè)視覺小項目案例,QT5,qt,交互,c++,計算機視覺,目標檢測

2.4 圖像自適應(yīng)

qt圖片控件,OpenCV,工業(yè)視覺小項目案例,QT5,qt,交互,c++,計算機視覺,目標檢測

2.5 圖像實際大小

qt圖片控件,OpenCV,工業(yè)視覺小項目案例,QT5,qt,交互,c++,計算機視覺,目標檢測

2.6 矩形框控件

qt圖片控件,OpenCV,工業(yè)視覺小項目案例,QT5,qt,交互,c++,計算機視覺,目標檢測

2.7 旋轉(zhuǎn)矩形框控件

qt圖片控件,OpenCV,工業(yè)視覺小項目案例,QT5,qt,交互,c++,計算機視覺,目標檢測

2.8 任意多邊形控件

qt圖片控件,OpenCV,工業(yè)視覺小項目案例,QT5,qt,交互,c++,計算機視覺,目標檢測

2.9 圓控件

qt圖片控件,OpenCV,工業(yè)視覺小項目案例,QT5,qt,交互,c++,計算機視覺,目標檢測

2.10同心圓控件

qt圖片控件,OpenCV,工業(yè)視覺小項目案例,QT5,qt,交互,c++,計算機視覺,目標檢測

2.11 扇環(huán)控件

qt圖片控件,OpenCV,工業(yè)視覺小項目案例,QT5,qt,交互,c++,計算機視覺,目標檢測

2.12 直線卡尺控件

qt圖片控件,OpenCV,工業(yè)視覺小項目案例,QT5,qt,交互,c++,計算機視覺,目標檢測

2.13 圓卡尺控件

qt圖片控件,OpenCV,工業(yè)視覺小項目案例,QT5,qt,交互,c++,計算機視覺,目標檢測

總結(jié)

由于博主能力有限,本篇文章中提及的方法,也難免會有疏漏之處,希望您能熱心指出其中的錯誤,以便下次修改時能以一個更完美更嚴謹?shù)臉幼?,呈現(xiàn)在大家面前。文章來源地址http://www.zghlxwxcb.cn/news/detail-755044.html

到了這里,關(guān)于基于Qt5的圖像交互控件開發(fā)(C++實現(xiàn))的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • QT5教程-搭建自己的人機交互界面(附代碼)(一):QT5安裝與環(huán)境配置

    QT5教程-搭建自己的人機交互界面(附代碼)(一):QT5安裝與環(huán)境配置

    本教程目的在于記錄自己開發(fā)QT項目的學習過程。 適合剛剛接觸QT的初學者 。鑒于個人水平有限,必定錯誤頻出,請各位前輩多多指教。 使用QT5.9.9作為開發(fā)工具,開發(fā)環(huán)境為Ubuntu20.04,圖形傳輸需要安裝Opencv4.5.5和FFmpeg。消息傳輸需要配置mqtt模塊。 教程要求學習者對C++有基

    2024年02月11日
    瀏覽(21)
  • 【[Qt]基于QGraphicsView的圖像顯示控件,支持放大、縮小、鼠標拖動】

    【[Qt]基于QGraphicsView的圖像顯示控件,支持放大、縮小、鼠標拖動】

    ImageViewer.h文件 ImageViewer.cpp 文件 具體使用代碼如下 1、初始化類對象,并加入界面布局中 2、打開圖像,并加載到控件中 3、從控件中卸載圖片 源碼鏈接:https://download.csdn.net/download/xiaohuihuihuige/87239431 百度云: 鏈接:https://pan.baidu.com/s/1W-KUlIKUFAktUKFin63N0g 提取碼:4g8a

    2024年02月11日
    瀏覽(102)
  • 基于Qt5開發(fā)圖形界面——WiringPi調(diào)用Linux單板電腦IO

    基于Qt5開發(fā)圖形界面——WiringPi調(diào)用Linux單板電腦IO

    Qt是一種跨平臺的應(yīng)用程序開發(fā)框架。它被廣泛應(yīng)用于圖形用戶界面(GUI)開發(fā),可以用于構(gòu)建桌面應(yīng)用程序、移動應(yīng)用程序和嵌入式應(yīng)用程序。Qt提供了豐富的功能和工具,使開發(fā)人員可以快速、高效地構(gòu)建各種類型的應(yīng)用程序。 下面是一些Qt的主要特點和優(yōu)勢: 跨平臺性

    2024年02月10日
    瀏覽(23)
  • 利用OpenCV與Qt5構(gòu)建卡尺擬合直線工具(C++實現(xiàn))

    利用OpenCV與Qt5構(gòu)建卡尺擬合直線工具(C++實現(xiàn))

    基于OpenCV與Qt5構(gòu)建卡尺擬合直線工具 博主近期基于海康Vision Master4.0做了一個工業(yè)視覺工程項目,其中就使用到了??礦M的找直線工具,然后博主根據(jù)其中的技術(shù)原理,也仿照開發(fā)了一個類似的功能,基于OpenCV和Qt5構(gòu)建一個卡尺找直線的工具??ǔ哒抑本€是在計算機視覺領(lǐng)域中

    2024年02月08日
    瀏覽(118)
  • 利用OpenCV與Qt5構(gòu)建卡尺找圓工具(C++實現(xiàn))

    利用OpenCV與Qt5構(gòu)建卡尺找圓工具(C++實現(xiàn))

    基于OpenCV與Qt5構(gòu)建卡尺找圓工具 博主近期基于??礦ision Master4.0做了一個工業(yè)視覺工程項目,其中就使用到了??礦M的找圓工具,然后博主根據(jù)其中的技術(shù)原理,也仿照開發(fā)了一個類似的功能,基于OpenCV和Qt5構(gòu)建一個卡尺找圓的工具。卡尺找圓是在計算機視覺領(lǐng)域中常用的技術(shù)

    2024年02月10日
    瀏覽(40)
  • 基于Qt5 實現(xiàn)的簡易慕課爬取程序

    基于Qt5 實現(xiàn)的簡易慕課爬取程序

    Qt 網(wǎng)絡(luò)下載數(shù)據(jù)實例 名稱:MookScrapy 這個項目主要是使用了 Qt 里面的 QNetworkAccessManager 去下載慕課網(wǎng)站的數(shù)據(jù) https://coding.imooc.com,也就是這個網(wǎng)站里面的卡片信息。然后做一定的分析和展示。(僅供參考,非法爬蟲違法,學習使用下載的數(shù)據(jù)即可) 功能: 1.下載網(wǎng)頁,對網(wǎng)

    2024年02月13日
    瀏覽(16)
  • Qt —— 編譯Qt5版本QFTP庫,并實現(xiàn)連接服務(wù)、獲取列表、上傳、下載、刪除文件等操作(附源碼、附基于Qt5編譯好的QFTP庫)

    Qt —— 編譯Qt5版本QFTP庫,并實現(xiàn)連接服務(wù)、獲取列表、上傳、下載、刪除文件等操作(附源碼、附基于Qt5編譯好的QFTP庫)

    示例效果1 ? 示例效果2 ? 介紹 ?????QFTP是Qt4的庫,Qt5改用了QNetworkAccessManager來代替。但是Qt5提供的QNetworkAccessManager僅支持FTP的上傳和下載,所以只能 將QFTP庫編譯為Qt5的庫來進行調(diào)用。 ?????QFTP在Github的下載地址:https://github.com/qt/qtftp ? 客戶端源碼生成的rele

    2024年01月20日
    瀏覽(96)
  • Qt開發(fā)教程:C++與QML的交互

    Qt是一個功能強大的跨平臺應(yīng)用程序開發(fā)框架,支持同時使用C++和QML來開發(fā)應(yīng)用程序。通過C++與QML的交互,我們可以實現(xiàn)更靈活、更強大的應(yīng)用程序。本文將詳細介紹如何在Qt中創(chuàng)建自定義對象、在QML端發(fā)送信號并綁定到C++端、在C++端發(fā)送信號并綁定到QML端、以及實現(xiàn)QML端直接

    2024年04月16日
    瀏覽(61)
  • qt中使用QGIS實現(xiàn)二次開發(fā)導入shp格式地圖(MSVC2019_64bit+qt5.15+qgis)

    qt中使用QGIS實現(xiàn)二次開發(fā)導入shp格式地圖(MSVC2019_64bit+qt5.15+qgis)

    在qt開發(fā)過程中可能要導入自定義格式的圖層地圖,那么可以把這些數(shù)據(jù)導入qgis然后導出為shp格式文件,然后下載qgis源碼,在qt項目中配置環(huán)境變量導入qgis有關(guān)的頭文件,然后再引入shp數(shù)據(jù)格式的地圖。 QGIS安裝 QGIS安裝 QGIS導入數(shù)據(jù) 然后保存點擊Layer-save as導出為shp格式文件

    2024年02月05日
    瀏覽(28)
  • 基于Qt4開發(fā)曲線繪制交互軟件Plotter

    基于Qt4開發(fā)曲線繪制交互軟件Plotter

    目前市面上有很多曲線繪制軟件,但其交互功能較差。比如,想要實現(xiàn)數(shù)據(jù)的交互,同步聯(lián)動等,都需要大量繁瑣的人工操作。所以講想開發(fā)一款輕量級的曲線繪制交互軟件。下面就以此為案例,記錄一下基于Qt4的開發(fā)過程。 目錄 1 需求 2 技術(shù)路線 3 開發(fā)流程 1 框架搭建 2

    2024年01月21日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包