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

使用openCV python繪制實心旋轉(zhuǎn)的矩形

這篇具有很好參考價值的文章主要介紹了使用openCV python繪制實心旋轉(zhuǎn)的矩形。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

?

題目:給出旋轉(zhuǎn)矩形的四個頂點 p1(x1, y1), p2(x2, y2), p3(x3, y3), p4(x4, y4) 或者 中心點 (cx,cy),(w,h),θ 畫一個旋轉(zhuǎn)的實心矩陣:輸出numpy數(shù)組,矩形內(nèi)的值全部為255

看方法直接看最下邊
看方法直接看最下邊
看方法直接看最下邊

一、通過中心點、寬高、角度得到四個頂點的公式網(wǎng)上都有,最后輸出四個頂點的x和y坐標。

import numpy as np

rectangle = [cx,cy,w,h,θ]

x1 = int(np.cos(rectangle[4])*(-rectangle[2]/2) - np.sin(rectangle[4])*(-rectangle[3]/2) + rectangle[0])
x2 = int(np.cos(rectangle[4])*(rectangle[2]/2) - np.sin(rectangle[4])*(-rectangle[3]/2) + rectangle[0])
x3 = int(np.cos(rectangle[4])*(-rectangle[2]/2) - np.sin(rectangle[4])*(rectangle[3]/2) + rectangle[0])
x4 = int(np.cos(rectangle[4])*(rectangle[2]/2) - np.sin(rectangle[4])*(rectangle[3]/2) + rectangle[0])
y1 = int(np.sin(rectangle[4])*(-rectangle[2]/2) + np.cos(rectangle[4])*(-rectangle[3]/2) + rectangle[1])
y2 = int(np.sin(rectangle[4])*(rectangle[2]/2) + np.cos(rectangle[4])*(-rectangle[3]/2) + rectangle[1])
y3 = int(np.sin(rectangle[4])*(-rectangle[2]/2) + np.cos(rectangle[4])*(rectangle[3]/2) + rectangle[1])
y4 = int(np.sin(rectangle[4])*(rectangle[2]/2) + np.cos(rectangle[4])*(rectangle[3]/2) + rectangle[1])

二、繪制實心矩形

關(guān)于怎么繪制實心矩形,因為openCV本身的cv2.rectangle只能繪制角度為0的矩形,沒辦法用,所以一開始打算遍歷每個點判斷是否在矩形內(nèi),來繪制

from shapely import geometry

def ifPointsInside(polygon, Points):
    line = geometry.LineString(polygon)
    point = geometry.Point(Points)
    polygon = geometry.Polygon(line)
    return polygon.contains(point)

以及用凹凸多邊形來判斷、用四個三角形面積和矩形面積對比來找
opencv旋轉(zhuǎn)矩形 python,opencv,python

結(jié)果因為每個點都要遍歷計算,我是用來處理深度學習資料的,一萬多張圖片,640*480分辨率,那就是30多億次,他沒遍歷完,我人就先走了,太慢

然后想到了:先用cv2.line繪制邊框,然后圖像按橫遍歷找里面的255值,找到兩個255的話就把這兩個中間的全都標記255,成功了,不過還是慢

最后解決方法:用cv2.line一條線一條線的畫,從(x1,y1)->(x2,y2)一直畫到(x3,y3)->(x4,y4)

Output = np.zeros((480,640,1)) 
#我的用單通道,三通道就把1改成3,下面的(255)改成(255,255,255)

a = (y3-y1)/(x3-x1)
#這個是用來計算斜率

for x in range(0,abs(x3-x1)):
    cv2.line(Output,(int(x1+x),int(y1+a*x)),(int(x2+x),int(y2+a*x)), (255), 2)

按1pixel畫,精度不夠,改為0.01步伐

Output = np.zeros((480,640,1)) 

a = (y3-y1)/(x3-x1)

for x in range(0,100*abs(x3-x1)):
    cv2.line(Output,(int(x1+x/100),int(y1+a*x/100)),(int(x2+x/100),int(y2+a*x/100)), (255), 2)

畫出來了
opencv旋轉(zhuǎn)矩形 python,opencv,python文章來源地址http://www.zghlxwxcb.cn/news/detail-704752.html

(23/09/09)然后我發(fā)現(xiàn)opencv有函數(shù),真的是蠢哭了:

bbox=[[x1,y1],[x2,y2],[x3,y3],[x4,y4],...]
image = cv2.fillPoly(image, [np.array(bbox)], color)

到了這里,關(guān)于使用openCV python繪制實心旋轉(zhuǎn)的矩形的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • Python OpenCV實現(xiàn)鼠標繪制矩形框和多邊形

    Python OpenCV實現(xiàn)鼠標繪制矩形框和多邊形

    目錄 Python OpenCV實現(xiàn)鼠標繪制矩形框和多邊形 1. OpenCV鼠標事件操作說明 (1)setMouseCallback函數(shù)說明 (2)回調(diào)函數(shù)onMouse說明 (3)event 具體說明: (4)flags 具體說明 2. OpenCV實現(xiàn)鼠標繪制矩形框和多邊形框 (1)繪制矩形框 (2)繪制多邊形 (3)鍵盤控制 3. 完整的代碼 本篇將

    2024年02月06日
    瀏覽(131)
  • 使用opencv在圖片上繪制矩形框,查看圖片中某點坐標坐標點

    介紹 安裝 OpenCV 繪制矩形 查看點坐標 總結(jié) OpenCV 是一個開源的計算機視覺庫,提供了豐富的圖像處理和計算機視覺功能。在科學研究、計算機視覺應用以及機器學習領(lǐng)域,它都被廣泛應用。本文將介紹如何使用 Python 的 OpenCV 庫來查看一張圖片的坐標點。 在開始之前,我們首

    2024年02月11日
    瀏覽(22)
  • 【Python】【OpenCV】繪制外接矩形、外接圓 以及 凸輪廓和Douglas-Peucker算法

    ?外接矩形、外接圓: ? 1、cv2.boundingRect() Method 和 cv2.minAreaRect() Merhod:前者只尋找和 x、y軸 平行的矩形,后者則可以出現(xiàn)旋轉(zhuǎn)角度。 2、cv2.drawContours() Method:第二個參數(shù)接收的是輪廓信息,但是這個輪廓信息需要以 tuple or list or set類型(或者說是iterable)才可以傳入。 請注

    2024年02月05日
    瀏覽(102)
  • OpenCV繪制矩形

    OpenCV繪制矩形

    這是完整的代碼:

    2024年02月09日
    瀏覽(18)
  • c++opencv RotatedRect 旋轉(zhuǎn)矩形角度轉(zhuǎn)換和頂點順序轉(zhuǎn)換
  • OpenCV:繪制圖像中mask的最小外接矩形

    在計算機視覺和圖像處理中,我們經(jīng)常需要計算直線與外接矩形邊的交點。這在進行邊緣檢測、圖像分割、目標跟蹤等任務時非常有用。本文將介紹如何使用OpenCV和NumPy計算直線與外接矩形邊的交點,并展示如何在實際圖像中繪制直線。 使用OpenCV的findContours函數(shù)尋找圖像中的

    2024年01月24日
    瀏覽(89)
  • OPENCV C++(七)霍夫線檢測+找出輪廓和外接矩形+改進旋轉(zhuǎn)

    霍夫線檢測 ?定義存放輸出線的向量 此向量輸出有距離,角度 因為檢測的原理就是在變換霍夫空間里面去檢測的,這里可以理解為極坐標 第3個參數(shù)是距離精度 第四個參數(shù)是角度精度,第五個是閾值,只有點超過90個才算一條線 在圖中畫線操作: 這里是畫線操作? 概率霍夫

    2024年02月13日
    瀏覽(91)
  • Opencv(C++)筆記--繪制直線、矩形、橢圓、圓、填充多邊形、繪制字體和隨機產(chǎn)生坐標點

    Opencv(C++)筆記--繪制直線、矩形、橢圓、圓、填充多邊形、繪制字體和隨機產(chǎn)生坐標點

    目錄 1--cv::line()繪制直線 2--cv::Rect()繪制矩形 3--cv::ellipse()繪制橢圓 4--cv::circle()繪制圓 5--cv::fillPoly()填充多邊形 6--cv::putText()繪制字體 6--cv::RNG隨機產(chǎn)生坐標點 使用 cv::Point p1 定義坐標點; 使用 cv::line() 繪制直線,傳入的參數(shù)依次為:背景圖、兩個點的坐標、直線的顏色、直線

    2024年02月14日
    瀏覽(117)
  • OpenCV(十三):圖像中繪制直線、圓形、橢圓形、矩形、多邊形和文字

    OpenCV(十三):圖像中繪制直線、圓形、橢圓形、矩形、多邊形和文字

    目錄 1.繪制直線line() 2.繪制圓形circle() 3.繪制橢圓形ellipse()? 4.繪制矩形rectangle() 5.繪制多邊形?fillPoly()? 6.繪制文字putText() 7.例子 1.繪制直線line() img:繪制圓形的圖像 ptl:直線起始點在圖像中的坐標 pt2: 直線終點在圖像中的坐標 color:圓形的顏色,用三通道表示 thickness:輪廓的寬

    2024年02月09日
    瀏覽(97)
  • OpenCV筆記:模板匹配 cv2.matchTemplate()、cv2.minMaxLoc() 與 繪制矩形 cv2.rectangle() 方法介紹

    OpenCV筆記:模板匹配 cv2.matchTemplate()、cv2.minMaxLoc() 與 繪制矩形 cv2.rectangle() 方法介紹

    ????????模板匹配是用來在一副大圖中搜尋查找模版圖像位置的方法。繪制矩形是用來將模版圖像的匹配結(jié)果展示出來的方法。 ????????模板匹配實現(xiàn)簡單(2~3行代碼),計算效率高,不需要執(zhí)行閾值化、邊緣檢測等操作來生成二值化圖像。 但是: 如果輸入圖像中存

    2024年02月04日
    瀏覽(94)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包