【OpenCV】圖形繪制與填充

????????介紹了繪制、填充圖像的API。也介紹了RNG類用來生成隨機數。相關API:

  • line()

  • rectangle()

  • circle()

  • ellipse()

  • putText()

代碼:

#include "iostream"
#include "opencv2/opencv.hpp"using namespace std;
using namespace cv;int main(int argc, char *argv)
{//【畫布(圖片)、窗口創建】Mat canvas = Mat::zeros(Size(512, 512), CV_8UC3);namedWindow("canvas", WINDOW_AUTOSIZE);//【相關繪制API]】//線段line(canvas, Point(10, 10), Point(400, 400), Scalar(0, 255, 255), 1, LINE_8);	//API(畫布,點,點,色彩,線粗,渲染方式),渲染方式是枚舉值,LINE_AA可以實現抗鋸齒效果。//矩形Rect rect(100, 100, 200, 200);	//(起始點位置,寬高)寬高不可為負值rectangle(canvas, rect, Scalar(255, 0, 0), 1, LINE_8);	//API//圓形circle(canvas, Point(256, 256), 100, Scalar(0, 255, 0), 1, 8);	//API(畫布,圓心,半徑,色彩,線粗,渲染方式)//橢圓RotatedRect rrt;	//通過這個對象設置一些矩形數據rrt.center = Point2f(256, 256);	//橢圓中心rrt.angle = 45;	//旋轉角度,可以為負值,反向旋轉rrt.size = Size(100, 200);	//橢圓尺幅,可以理解為把橢圓圈起來的矩形的大小ellipse(canvas, rrt, Scalar(0, 255, 255), -1, 8);	//API(畫布,RotatedRect對象,色彩,線粗,渲染方式),線粗參數設置-1圖形變填充。//文字putText(canvas, "hello,world", Point(100, 50), FONT_HERSHEY_SIMPLEX, 1.0, Scalar(0, 255, 0), 2, 8);	//API(畫布,文字,起始點,字體,大小,色彩,粗細,渲染方式)imshow("canvas", canvas);//【隨機繪制】/*Mat image = Mat::zeros(Size(512, 512), CV_8UC3);Rect rect1;	int x1 = 0, y1 = 0;int x2 = 0, y2 = 0;RNG rng(12345);	//隨機數,參數是設置的種子。while (true){//把image轉變為純黑圖,相當于每次繪制前清空image圖片。可以去掉注釋運行看看效果。//image = Scalar(0, 0, 0);//兩個點的x,y取隨機值x1 = rng.uniform(0, 512);//0~511的范圍隨機,[0,512)y1 = rng.uniform(0, 512);x2 = rng.uniform(0, 512);y2 = rng.uniform(0, 512);//取兩點間寬高int w = abs(x2 - x1);	//取絕對值int h = abs(y2 - y1);//畫線line(image, Point(x1, y1), Point(x2, y2), Scalar(rng.uniform(0, 256), rng.uniform(0, 256), rng.uniform(0, 256)), 1, LINE_8);//畫矩形rect1.x = x1;rect1.y = y1;rect1.width = w;rect1.height = h;rectangle(image, rect1, Scalar(255, 0, 0), 1, LINE_8);imshow("image", image);//按下任意鍵(英文輸入法)退出循環,停止隨機繪制if (waitKey(10) >= 0){break;}}*/waitKey(0);destroyAllWindows();return 0;
}

除了幾個API的使用要了解,還要了解這段代碼中用到的各種類對象相關內容。

  • Rect

  • RotatedRect

  • RNG

  • .uniform(),[x,y)

這里分別用于了矩陣,橢圓的繪制,以及獲取隨機數。

演示:

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/17842.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/17842.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/17842.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ARM64的KASLR分析

基本概念 加載地址:內核解壓到物理內存上的物理起始地址 鏈接地址:內核編譯鏈接后的虛擬起始地址 我們的這篇 文章,介紹了加載地址可以是自動的,也可以是固定的;一般都是物理內存的起始地址 一個偏移 ;…

pillow學習3

Pillow庫中,圖像的模式代表了圖像的顏色空間。以下是一些常見的圖像模式及其含義: L(灰度圖):L模式表示圖像是灰度圖像,每個像素用8位表示(范圍為0-255),0表示黑色&#…

在flutter initState 方法,觸發 setState導致循環執行

在Flutter中,如果你在initState中調用了一個方法,并且這個方法可能導致狀態更新,這可能會引起無限循環,因為每次狀態更新都會再次調用initState。 為了避免這種情況,你應該檢查調用的方法是否會導致狀態更新&#xff…

圖算法新書發布會圓滿成功,大咖現場都講了啥?

5月24日,嬴圖與機工社攜手舉辦的“《圖算法:行業應用與實踐》新書發布會”圓滿成功。 現場直播在線觀眾達4000人/次左右,點贊數量超7000,直至發布會尾聲,觀看人數仍在持續增長。 通過觀眾們的反饋,我們也對…

Matplotlib 實踐指南:圖形樣式、風格與標記探索

目錄 前言 第一點:導入模塊 第二點:創建二維圖 第三點:創建統計圖 總結 前言 Matplotlib 是一個強大的數據可視化庫,可用于創建各種類型的圖形。在本文中,我們將研究如何在 Matplotlib 中設置圖形的顏色、風格和標記…

【LeetCode算法】第88題:合并兩個有序數組

目錄 一、題目描述 二、初次解答 三、官方解法 四、總結 一、題目描述 二、初次解答 1. 思路:首次想到的解法:定義一個mn長度的輔助數組,從頭遍歷這兩個數組,誰小就放進輔助數組中并且對應往后走,最后使用memcpy函…

巧用java8的stream流的.collect(Collectors.toMap(arg1,arg2))

最近公司接手了一個低代碼二次開發平臺的需求,需要連接多張表的數據然后展示到界面上。 按照java的sql思路,我們直接通過left join去關聯表就行了,但是該低代碼平臺有對sql連表查詢有限制,就是有些表它是存在一個domainKey的&…

HotSpot虛擬機的幾個實現細節

文章目錄 STW安全點安全區域記憶集與卡表讀寫屏障 STW 收集器在根節點枚舉這步都是必須要暫停用戶線程的( STW ),如果不這樣的話在根節點枚舉的過程中由于引用關系在不斷變化,分析的結果就不準確 安全點 收集器在工作的時候某些…

切勿安裝這五款流氓軟件,你中招了沒

流氓軟件,又稱為惡意軟件,是一類設計用來損害用戶設備、竊取信息或干擾正常使用的程序。以下是五款臭名昭著的流氓軟件介紹,提醒切勿安裝,只能說一個比一個毒,你中招了沒 可以去去虛擬機試試誰的毒更強一些&#xff0…

高工咨詢:《2024中國人形機器人產業發展藍皮書》

高工咨詢所發布的《2024中國人形機器人產業發展藍皮書》全面梳理了人形機器人產業的發展現狀、政策環境、資本市場、技術發展、市場前景以及面臨的機遇與挑戰等情況。 人形機器人是當今世界科技領域最具潛力和前景的產業之一。隨著科技的不斷進步和人 工智能技術的快速發展&…

基于jeecgboot-vue3的Flowable增加表單功能(二)

因為這個項目license問題無法開源,更多技術支持與服務請加入我的知識星球。 接上一節 6、增加一個types.ts 類型 export interface FormForm {id: number | string | undefined;formName: string;formContent?: string;remark: string; } 7、api增加一個getForm…

Github Page 部署失敗

添加 .gitmodules 文件 [submodule "themes/ayer"]path themes/ayerurl https://github.com/Shen-Yu/hexo-theme-ayer.git 添加 .nojekyll 文件

React Fiber

React引入Fiber前后的區別: 渲染流程的控制: 之前:在Fiber之前,React的渲染過程是一個相對線性的深度優先遍歷過程,從根節點開始遍歷整個組件樹,這個過程一旦開始就無法中斷,直到完成。如果遇到…

滾珠花鍵在工業自動化領域中有什么優勢?

滾珠花鍵是工業自動化設備中重要的傳動系統之一,不僅在工業自動化系統中有著廣泛的運用,還在機械制造領域、航空航天領域、工業汽車領域、工業機器人、高速鐵路、新能源領域 等都得到廣泛應用。由于具有高精度、高承載、耐磨損、傳遞扭矩大等特點&#x…

android 關于自定義View在特殊情況下觸發setPressed方法(View源碼解析)

文章目錄 前言一、為什么樣式會變?二、調試發現原因并解決1.找到原因2.解決 總結 前言 最近在負責一些UI相關的工作,測試給到一個UI的bug,說是搜索框在點擊的時候,旁邊的’‘X’變成按壓的效果了,我轉手就把bug轉給負責公控的同事了,因為這個搜索框是公控同事提供的…

Mysql常用操作DDL數據庫、表操作:

SQl DDl-數據庫操作 查詢 查詢所有數據庫 show databases; 查詢當前數據庫 select database(); 創建 create database [if not exists] 數據庫名 [default charset 字符集] [collate 排序規則]; 刪除 drop database[if exists] 數據庫名; 使用 use 數據庫名;…

K8s集群中的Pod調度約束親和性與反親和性

前言 在 K8s 集群管理中,Pod 的調度約束——親和性(Affinity)與反親和性(Anti-Affinity)這兩種機制允許管理員精細控制 Pod 在集群內的分布方式,以適應多樣化的業務需求和運維策略。本篇將介紹 K8s 集群中…

運維開發詳解:現代IT環境的核心角色

隨著信息技術的快速發展和互聯網應用的廣泛普及,運維開發(DevOps)在現代IT環境中扮演著越來越重要的角色。本文將詳細探討運維開發的概念、歷史背景、關鍵實踐、工具和未來趨勢,旨在為讀者提供全面的理解。 什么是運維開發&#…

labview類編程

1.父類的功能是通用功能,所有子類都含有父類的功能,重寫會自動執行一次父類的功能。 2.每個子類都用了父類的注冊vi,所以在調用的時候,出來的就是子類注冊的vi,也就是window.vi。 3.假如要設計一個父類的vi,首先是保存…

手持高速暴力風扇方案32位單片機

RAMSUN一款低成本的暴力無刷風扇方案,集成無刷電機驅動、電池低壓保護等功能的同時,保持較低的待機功耗。 手持高速暴力風扇主控芯片MM32SPIN080C高性能的單電機控制 SOC 產品,集成了運動控制所需的專用模擬外設。包括 12 位高精度 ADC、2 路模擬比較器…