• <noscript id="e0iig"><kbd id="e0iig"></kbd></noscript>
  • <td id="e0iig"></td>
  • <option id="e0iig"></option>
  • <noscript id="e0iig"><source id="e0iig"></source></noscript>
  • openCV學習筆記(四)-- 繪制基本形狀和文字

    標簽: openCV  opencv

    1.繪制基本圖形
    在這里插入圖片描述
    記住要全局聲明,和在main函數中調用

    //繪制直線
    void MyLines() {
    	//定義兩個點
    	Point p1 = Point(20, 30);
    	Point p2;
    	p2.x = 300;
    	p2.y = 300;
    	Scalar color = Scalar(0, 0, 255);//定義直線顏色
    	//練成一條直線
    	line(bgImage, p1, p2, color, 1, LINE_8);//背景圖片,點1,點2,線的顏色,線的寬度,線的類型(LINT_AA--表示反鋸齒型)
    	
    }
    
    //繪制矩形
    void MyRectangle() {
    	Rect rect = Rect(50, 50, 300, 300);//分別是起始的x,y值和矩形的寬高
    	Scalar color = Scalar(255, 0, 0);
    	rectangle(bgImage, rect, color, 2, LINE_8);
    }
    
    //繪制橢圓或弧線
    void MyEllipse() {
    	Scalar color = Scalar(0, 255, 0);
    	ellipse(bgImage, Point(bgImage.cols / 2, bgImage.rows / 2),Size(bgImage.cols / 4, bgImage.rows / 8), 70, 0, 360, color, 3, LINE_8);
    	//背景圖片,橢圓中心點,橢圓的長軸/短軸長短,橢圓傾斜角度,橢圓從0-360度(小于360則為圓弧);
    }
    
    //畫圓形
    void MyCircle() {
    	Scalar color = Scalar(0, 255, 255);
    	Point center = Point(bgImage.cols / 2, bgImage.rows / 2);//定義圓中心點
    	circle(bgImage, center, 150, color, 2, 8);//150為半徑,8=LINE_8
    }
    
    //畫多邊形
    void MyPolygon() {
    	Point pts[1][5];//定義一個圖形,其中有五個點
    	pts[0][0] = Point(100, 100);
    	pts[0][1] = Point(100, 200);
    	pts[0][2] = Point(200, 200);
    	pts[0][3] = Point(200, 100);
    	pts[0][4] = Point(100, 100);
    
    	const Point* ppts[] = { pts[0] };//引用數組數據
    	int npt[] = { 5 };//有幾個點
    	Scalar color = Scalar(255, 12, 255);
    
    	fillPoly(bgImage, ppts, npt, 1, color, 8);//1--畫一個圖形
    }
    
    //隨機畫線
    void RandomLineDemo() {
    	//RNG--隨機函數
    	RNG rng(12345);//設置一個隨機函數的種子,相當于邊界
    	Point pt1;
    	Point pt2;
    	Mat bg = Mat::zeros(bgImage.size(), bgImage.type());//重新畫一張bgImage大小的黑色圖
    	namedWindow("random_line", CV_WINDOW_AUTOSIZE);
    	for (int i = 0; i < 100000; ++i) {
    		pt1.x = rng.uniform(0, bgImage.cols);//生成一個范圍內的正態分布隨機數
    		pt2.x = rng.uniform(0, bgImage.cols);
    		pt1.y = rng.uniform(0, bgImage.rows);
    		pt2.y = rng.uniform(0, bgImage.rows);
    		Scalar color = Scalar(rng.uniform(0, 255), rng.uniform(0, 255), rng.uniform(0, 255));
    		if (waitKey(50)<0)//50ms畫一條
    		{
    			break;
    		}
    		line(bg, pt1, pt2, color, 1, 8);
    		imshow("random_line", bg);
    	}
    }
    

    在這里插入圖片描述

    在這里插入圖片描述
    2.繪制文字

    //繪制文字
    	putText(bgImage,"Hello OpenCV",Point(300,300),CV_FONT_HERSHEY_COMPLEX,1.5,Scalar(12,23,200),3,8);
    	//背景圖片,文本,文字位置,字體,文字大小,顏色,粗細,線的類型
    

    在這里插入圖片描述

    版權聲明:本文為DIAJEY原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
    本文鏈接:https://blog.csdn.net/DIAJEY/article/details/106997902

    智能推薦

    08-繪制形狀和文字

    知識點 1、使用cv::Point(代表點),cv::Scalar(代表顏色向量); 2、繪制線,矩形,圓,橢圓等基本幾何形狀; 3、隨機生成與(圖像上)繪制文本; 4、代碼演示; 使用cv::Point與cv::Scalar 1、Point表示2D平面上一個點x,y; 2、Scalar表示四個元素的向量(Scalar最多只能傳入4個參數) 繪制線,矩形,圓,橢圓 畫線:cv::line; lin...

    OpenCvSharp 學習筆記7 --繪制圖形和文字

    一 繪制線條 API :Cv2.Line() 參數 說明 img: 源圖像 pt1: 第一個點 pt2: 第二個點 color 線條顏色 thickness: 線條的厚度(粗細) lineType: 線條類型 (枚舉值) shift 點坐標中的小數位數。[默認值為0] 代碼: 二 :繪制矩形 API:Cv2.Rectangle() 參數 說明 img: 源圖像 rect: 舉行對象 color 線...

    opencvC++學習7繪制形狀與文字

    目的: 使用cv::Point與cv::Scalar 繪制線、矩形、園、橢圓等基本幾何形狀 繪制點和圓 img:圖像。 center:圓心坐標。 radius:圓形的半徑。 color:線條的顏色。 thickness:如果是正數,表示組成圓的線條的粗細程度。否則,表示圓是否被填充。 line_type:線條的類型。見 cvLine 的描述 shift:圓心坐標點和半徑值的小數點位數。 畫圓畫點都...

    opencv學習筆記(四)——繪制輪廓、直方圖均衡、模板匹配

    繪制輪廓 函數 cv2.?ndContours() 有三個參數,第一個是輸入圖像,第二個是 輪廓檢索模式,第三個是輪廓近似方法。 直方圖 通過直方圖你可以對整幅圖像的灰度分布有一個整體的了解。直方圖的 x 軸是灰度值(0 到 255),y軸是圖片中具有同一個灰度值的點的數目。 直方圖其實就是對圖像的另一種解釋。以下圖為例,通過直方圖我們可以對圖像的對比度,亮度,灰度分布等有一個直觀的認識...

    HTML中常用操作關于:頁面跳轉,空格

    1.頁面跳轉 2.空格的代替符...

    猜你喜歡

    freemarker + ItextRender 根據模板生成PDF文件

    1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...

    電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!

    Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...

    requests實現全自動PPT模板

    http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...

    Linux C系統編程-線程互斥鎖(四)

    互斥鎖 互斥鎖也是屬于線程之間處理同步互斥方式,有上鎖/解鎖兩種狀態。 互斥鎖函數接口 1)初始化互斥鎖 pthread_mutex_init() man 3 pthread_mutex_init (找不到的情況下首先 sudo apt-get install glibc-doc sudo apt-get install manpages-posix-dev) 動態初始化 int pthread_...

    精品国产乱码久久久久久蜜桃不卡