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

【opencv】示例-minarea.cpp 如何尋找一組隨機(jī)生成的點(diǎn)的最小外接矩形、三角形和圓...

這篇具有很好參考價(jià)值的文章主要介紹了【opencv】示例-minarea.cpp 如何尋找一組隨機(jī)生成的點(diǎn)的最小外接矩形、三角形和圓...。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

【opencv】示例-minarea.cpp 如何尋找一組隨機(jī)生成的點(diǎn)的最小外接矩形、三角形和圓...,opencv,人工智能,計(jì)算機(jī)視覺(jué)

【opencv】示例-minarea.cpp 如何尋找一組隨機(jī)生成的點(diǎn)的最小外接矩形、三角形和圓...,opencv,人工智能,計(jì)算機(jī)視覺(jué)

【opencv】示例-minarea.cpp 如何尋找一組隨機(jī)生成的點(diǎn)的最小外接矩形、三角形和圓...,opencv,人工智能,計(jì)算機(jī)視覺(jué)

// 包含OpenCV庫(kù)的高GUI模塊和圖像處理模塊的頭文件
#include "opencv2/highgui.hpp"
#include "opencv2/imgproc.hpp"


// 包含標(biāo)準(zhǔn)輸入輸出流的頭文件
#include <iostream>


// 使用命名空間cv和std,這樣我們就可以直接使用OpenCV和標(biāo)準(zhǔn)庫(kù)的功能,而不需要每次都指定命名空間
using namespace cv;
using namespace std;


// 一個(gè)靜態(tài)函數(shù),用于顯示幫助信息
static void help()
{
    // 輸出程序的幫助信息,告訴用戶(hù)程序功能和使用方法
    cout << "This program demonstrates finding the minimum enclosing box, triangle or circle of a set\n"
         << "of points using functions: minAreaRect() minEnclosingTriangle() minEnclosingCircle().\n"
         << "Random points are generated and then enclosed.\n\n"
         << "Press ESC, 'q' or 'Q' to exit and any other key to regenerate the set of points.\n\n";
}


// main函數(shù),程序的入口
int main( int /*argc*/, char** /*argv*/ )
{
    // 調(diào)用幫助信息函數(shù)
    help();


    // 創(chuàng)建一個(gè)500x500像素的黑色空?qǐng)D像
    Mat img(500, 500, CV_8UC3, Scalar::all(0));
    // 獲取隨機(jī)數(shù)生成器的引用
    RNG& rng = theRNG();


    // 無(wú)限循環(huán)直到用戶(hù)決定退出(按下ESC或'q'鍵)
    for(;;)
    {
        int i, count = rng.uniform(1, 101); // 隨機(jī)生成點(diǎn)的數(shù)量,范圍1到100
        vector<Point> points; // 用來(lái)存儲(chǔ)隨機(jī)點(diǎn)的向量


        // 生成一組隨機(jī)點(diǎn)
        for( i = 0; i < count; i++ )
        {
            Point pt; // 創(chuàng)建一個(gè)點(diǎn)結(jié)構(gòu)
            // 點(diǎn)的x坐標(biāo)在圖像寬度的1/4到3/4之間隨機(jī)生成
            pt.x = rng.uniform(img.cols/4, img.cols*3/4);
            // 點(diǎn)的y坐標(biāo)在圖像高度的1/4到3/4之間隨機(jī)生成
            pt.y = rng.uniform(img.rows/4, img.rows*3/4);


            // 將生成的點(diǎn)添加到向量中
            points.push_back(pt);
        }


        // 找到包圍點(diǎn)的最小面積矩形框
        Point2f vtx[4]; // 聲明一個(gè)存儲(chǔ)矩形四個(gè)頂點(diǎn)的數(shù)組
        // 使用minAreaRect()計(jì)算點(diǎn)集可以包圍的最小矩形區(qū)域和角度
        RotatedRect box = minAreaRect(points);
        // 將計(jì)算的矩形區(qū)域的四個(gè)頂點(diǎn)賦值給vtx數(shù)組
        box.points(vtx);


        // 找到包圍點(diǎn)的最小面積三角形
        vector<Point2f> triangle; // 創(chuàng)建向量存儲(chǔ)三角形的頂點(diǎn)
        // 使用minEnclosingTriangle()計(jì)算可以包圍點(diǎn)集的最小三角形
        minEnclosingTriangle(points, triangle);


        // 找到包圍點(diǎn)的最小面積圓形
        Point2f center; // 圓心
        float radius = 0; // 半徑
        // 使用minEnclosingCircle()計(jì)算可以包圍點(diǎn)集的最小圓形及其半徑
        minEnclosingCircle(points, center, radius);


        // 將圖像重置為黑色
        img = Scalar::all(0);


        // 在圖像上畫(huà)出這些點(diǎn)
        for( i = 0; i < count; i++ )
            // 以點(diǎn)為中心,半徑為3,紅色,實(shí)心填充,抗鋸齒方式畫(huà)圓
            circle( img, points[i], 3, Scalar(0, 0, 255), FILLED, LINE_AA );


        // 畫(huà)出矩形框
        for( i = 0; i < 4; i++ )
            // 用綠色線(xiàn)條將矩形的四個(gè)頂點(diǎn)連接起來(lái),形成邊框
            line(img, vtx[i], vtx[(i+1)%4], Scalar(0, 255, 0), 1, LINE_AA);


        // 畫(huà)出三角形
        for( i = 0; i < 3; i++ )
            // 用黃色線(xiàn)條將三角形的三個(gè)頂點(diǎn)連接起來(lái),形成邊框
            line(img, triangle[i], triangle[(i+1)%3], Scalar(255, 255, 0), 1, LINE_AA);


        // 畫(huà)出圓形
        // 以計(jì)算得到的圓心,半徑,用青色線(xiàn)條畫(huà)出圓形
        circle(img, center, cvRound(radius), Scalar(0, 255, 255), 1, LINE_AA);


        // 顯示最終繪制的圖像
        imshow( "Rectangle, triangle & circle", img );


        // 等待鍵盤(pán)輸入
        char key = (char)waitKey();
        if( key == 27 || key == 'q' || key == 'Q' ) // 檢查是否是退出鍵'ESC'
            break; // 如果是則退出循環(huán)
    }


    return 0; // 程序成功結(jié)束
}

此段代碼的主要功能是:利用OpenCV庫(kù)生成隨機(jī)點(diǎn)集,并計(jì)算并展示這些點(diǎn)的最小外包矩形、三角形和圓形。用戶(hù)可以通過(guò)按鍵重新生成不同的隨機(jī)點(diǎn)集,或者按ESC/Q退出程序。程序中利用了OpenCV的隨機(jī)數(shù)生成函數(shù)、繪圖函數(shù)以及幾何形狀的計(jì)算函數(shù)。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-850897.html

到了這里,關(guān)于【opencv】示例-minarea.cpp 如何尋找一組隨機(jī)生成的點(diǎn)的最小外接矩形、三角形和圓...的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 【opencv】示例-image_alignment.cpp 利用ECC 算法進(jìn)行圖像對(duì)齊

    【opencv】示例-image_alignment.cpp 利用ECC 算法進(jìn)行圖像對(duì)齊

    affine homography 這段代碼是一個(gè) 利用ECC (Enhanced Correlation Coefficient) 算法進(jìn)行圖像對(duì)齊的示例 。代碼首先包含了OpenCV庫(kù)的頭文件,并且使用了OpenCV和標(biāo)準(zhǔn)庫(kù)的命名空間。然后定義了幾個(gè)函數(shù)和宏進(jìn)行圖像變換矩陣的操作,定義了一些用于解析命令行參數(shù)的。 main 函數(shù)中,

    2024年04月13日
    瀏覽(20)
  • 【opencv】示例-inpaint.cpp 圖像修復(fù)是通過(guò)填充損壞圖像部分從而修復(fù)這些損壞的過(guò)程...

    【opencv】示例-inpaint.cpp 圖像修復(fù)是通過(guò)填充損壞圖像部分從而修復(fù)這些損壞的過(guò)程...

    原始圖像 這段代碼展示了一個(gè)使用OpenCV庫(kù)進(jìn)行圖像修復(fù)的例子。它首先包含了處理圖像編碼、解碼、顯示、處理和照片處理所必要的OpenCV模塊的頭文件。然后利用cv和std命名空間下的類(lèi)和方法。通過(guò)定義一個(gè)鼠標(biāo)回調(diào)函數(shù)onMouse來(lái)處理圖像上的繪圖操作,并通過(guò)主函數(shù)main處理

    2024年04月25日
    瀏覽(22)
  • 【opencv】dnn示例-person_reid.cpp 人員識(shí)別(ReID,Re-Identification)系統(tǒng)

    【opencv】dnn示例-person_reid.cpp 人員識(shí)別(ReID,Re-Identification)系統(tǒng)

    ReID(Re-Identification,即對(duì)攝像機(jī)視野外的人進(jìn)行再識(shí)別) 0030_c1_f0056923.jpg 0042_c5_f0068994.jpg 0056_c8_f0017063.jpg 以上為輸出結(jié)果:result文件夾下 galleryLIst.txt queryList.txt 模型下載: 這段代碼是一個(gè)使用OpenCV庫(kù)實(shí)現(xiàn)的 人員識(shí)別(ReID,Re-Identification)系統(tǒng) 。程序的主要功能是用于處理圖像

    2024年04月26日
    瀏覽(23)
  • 【opencv】示例-peopledetect.cpp HOG(方向梯度直方圖)描述子和SVM(支持向量機(jī))進(jìn)行行人檢測(cè)...

    【opencv】示例-peopledetect.cpp HOG(方向梯度直方圖)描述子和SVM(支持向量機(jī))進(jìn)行行人檢測(cè)...

    本段代碼是一個(gè)使用OpenCV庫(kù)的 HOG(Histogram of Oriented Gradients,方向梯度直方圖)描述子和SVM(Support Vector Machines,支持向量機(jī))進(jìn)行行人檢測(cè)的程序 。程序定義了Detector類(lèi)來(lái)執(zhí)行行人檢測(cè),可以在兩種模式(默認(rèn)模式和戴姆勒模式)之間切換。通過(guò)命令行參數(shù),用戶(hù)可以選擇是

    2024年04月14日
    瀏覽(25)
  • 【OpenCV 例程 300篇】257.OpenCV 生成隨機(jī)矩陣

    【OpenCV 例程 300篇】257.OpenCV 生成隨機(jī)矩陣

    『youcans 的 OpenCV 例程300篇 - 總目錄』 OpenCV 中提供了 cv.randn 和 cv.randu 函數(shù)生成隨機(jī)數(shù)矩陣,也可以用于創(chuàng)建隨機(jī)圖像。 函數(shù) cv.randn 生成的矩陣服從正態(tài)分布,函數(shù) cv.randu 生成的矩陣服從均勻分布 函數(shù)說(shuō)明: cv.randn(dst, mean, stddev[, ]) → dst,生成正態(tài)分布矩陣 cv.randu(dst, lo

    2023年04月24日
    瀏覽(19)
  • 【opencv】示例-demhist.cpp 調(diào)整圖像的亮度和對(duì)比度,并在GUI窗口中實(shí)時(shí)顯示調(diào)整后的圖像以及其直方圖。...

    【opencv】示例-demhist.cpp 調(diào)整圖像的亮度和對(duì)比度,并在GUI窗口中實(shí)時(shí)顯示調(diào)整后的圖像以及其直方圖。...

    這段代碼是使用C++和OpenCV庫(kù)編寫(xiě)的圖像處理程序,其主要功能是 調(diào)整圖像的亮度和對(duì)比度,并在GUI窗口中實(shí)時(shí)顯示調(diào)整后的圖像以及其直方圖。 用戶(hù)可以通過(guò)界面上的滑動(dòng)條來(lái)動(dòng)態(tài)地調(diào)整亮度和對(duì)比度參數(shù)從而觀(guān)察到圖像即時(shí)的變化效果。程序首先讀取并顯示一個(gè)灰度圖像

    2024年04月10日
    瀏覽(28)
  • RNG類(lèi)是OpenCV中的一個(gè)基本隨機(jī)數(shù)生成工具

    RNG類(lèi)是OpenCV中的一個(gè)基本隨機(jī)數(shù)生成工具 在OpenCV中, RNG 類(lèi)是用于生成隨機(jī)數(shù)的偽隨機(jī)數(shù)生成器(Pseudo-Random Number Generator),它可以用于生成各種類(lèi)型的隨機(jī)數(shù),如整數(shù)、浮點(diǎn)數(shù)和隨機(jī)顏色,這個(gè)類(lèi)位于 opencv2/core/types.hpp 頭文件中; RNG可以產(chǎn)生3種隨機(jī)數(shù) RNG(int seed) 使用種子

    2024年02月11日
    瀏覽(21)
  • 快速生成一組環(huán)形數(shù)據(jù)

    快速生成一組環(huán)形數(shù)據(jù)

    ?? sklearn是一個(gè)開(kāi)源的機(jī)器學(xué)習(xí)庫(kù),支持不同種類(lèi)的機(jī)器學(xué)習(xí)算法,并且提供了許多質(zhì)量良好的數(shù)據(jù)集。假如我們想要得到一組環(huán)形數(shù)據(jù)集,借助sklearn的包很輕易就可以實(shí)現(xiàn),不過(guò)換個(gè)角度思考,我們自己動(dòng)手是否也可以生成一組數(shù)據(jù),使之在散點(diǎn)圖上環(huán)狀分布;借助C++的

    2024年02月05日
    瀏覽(23)
  • 如何使用MATLAB生成隨機(jī)矩陣

    如何使用MATLAB生成隨機(jī)矩陣 MATLAB是一種強(qiáng)大的數(shù)值計(jì)算和科學(xué)編程軟件,它提供了許多功能強(qiáng)大的工具來(lái)生成和處理矩陣。在MATLAB中,要生成隨機(jī)矩陣,可以使用內(nèi)置的隨機(jī)數(shù)函數(shù)。本文將向您展示如何使用MATLAB生成隨機(jī)矩陣,并提供相應(yīng)的源代碼示例。 使用rand函數(shù)生成隨

    2024年02月08日
    瀏覽(19)
  • unity如何制作隨機(jī)生成器

    隨機(jī)生成器的制作至少應(yīng)具備四個(gè)個(gè)要素:需要隨機(jī)生成的物體、物體隨機(jī)生成的間隔時(shí)間、每生成一次的物體個(gè)數(shù)、一定時(shí)間后銷(xiāo)毀物體。 其中最關(guān)鍵的問(wèn)題是如何間隔一定時(shí)間生成,這里提供兩種思路:1.運(yùn)用協(xié)程。2.做個(gè)計(jì)時(shí)器。 在這里我們需要初步了解一下協(xié)程。

    2023年04月09日
    瀏覽(50)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包