1. 程式人生 > >opencv計算直線的斜率、截距,與水平線弧度值、角度值

opencv計算直線的斜率、截距,與水平線弧度值、角度值

1、輸入一堆直線,返回每條直線的斜率和截距

斜率和截距都是浮點型。

//輸入一堆直線,返回每條直線的斜率和截距
//Vec2f為2個點的float,參照儲存直線的資料結構
vector <Point2f> get_lines_fangcheng(vector<Vec4i> lines)
{
    float k = 0; //直線斜率
    float b = 0; //直線截距
    vector <Point2f> lines_fangcheng;//直線斜率的反正切值

    for (unsigned int i = 0; i<lines.size(); i++)
    {

        k = (double
)(lines[i][3] - lines[i][1]) / (double)(lines[i][2] - lines[i][0]); //求出直線的斜率// -3.1415926/2-----+3.1415926/2 b = (double)lines[i][1] - k * (double)lines[i][0]; //求出直線的斜率 lines_fangcheng.push_back(Point2f(k,b)); } return lines_fangcheng; }

2、輸入一堆直線,返回每條直線與水平直線的弧度值

//輸入一堆直線,返回每條直線與水平直線的角度,為弧度
vector <float> get_lines_arctan(vector<Vec4i> lines) { float k=0; //直線斜率 vector <float> lines_arctan;//直線斜率的反正切值 for (unsigned int i = 0; i<lines.size(); i++) { k = (double)(lines[i][3] - lines[i][1]) / (double)(lines[i][2] - lines[i][0]); //求出直線的斜率 lines_arctan.push_back(atan
(k)); } return lines_arctan; }

當然角度稍微轉化即可,如下:

    //顯示每條直線的角度
    vector <float> lines_arctan;//直線斜率的反正切值
    lines_arctan = get_lines_arctan(lines);

    for (unsigned int i = 0; i < lines.size(); i++)
    {
        cout << "檢測到的直線弧度" << lines_arctan[i] << endl;
        cout << "檢測到的直線角度為:" << lines_arctan[i] *180.0/3.1415926<< endl;
    }

相關推薦

opencv計算直線斜率水平線弧度角度

1、輸入一堆直線,返回每條直線的斜率和截距 斜率和截距都是浮點型。 //輸入一堆直線,返回每條直線的斜率和截距 //Vec2f為2個點的float,參照儲存直線的資料結構 vector <

Android 調用系統分享文字圖片文件可直達微信朋友圈QQQQ空間微博

gem 朋友 con vmpolicy false 錯誤 區分 指定 如果 原文:Android 調用系統分享文字、圖片、文件,可直達微信、朋友圈、QQ、QQ空間、微博 兼容SDK

什麼是恆流源恆壓源恆壓恆流電源有什麼不同?

本文主題:恆壓源、恆流源、恆壓恆流電源都分別是什麼?有什麼區別?如何運用?在講述它們的區別之前,先了解它們最大的一個共同點,即都是開關電源的一種。 一、恆壓源理想的恆壓源是指輸出電壓恆定,不會因負載電阻、輸入端電壓、溫度的變化而發生改變,內阻R等於零,但實際的恆壓源皆存在內阻R。舉例講述:華堯恆壓源型號HY

如何修改帶索引的欄位的長度檢視刪除索引修改欄位屬性建立索引!

需要重新建立索引,因為長度不同會認為是兩個不同的所索引。 建立和刪除索引 索引的建立可以在CREATE TABLE語句中進行,也可以單獨用CREATE INDEX或ALTER TABLE來給表增加索引。刪除索引可以利用ALTER TABLE或DROP INDEX語句來實現。 (1)使用ALTER T

WPF 之 XAML語法物件屬性賦(簡單賦TypeConverter 標籤屬性物件屬性對映標記擴充套件)引用外部庫

一、XAML樹形結構       框架都是樹形的,以<Window>物件為根節點,一層一層向下包含。這種樹形結構對於WPF整個體系都具有非常重要的意義,它不但影響著UI的佈局設計,還深刻的影響著WPF的屬性(Property)子系統和事件(Event)子

【周小董】1越努力越幸運! 2機會總是留給有準備的人! 3承受別人不能承受的才能得到別人不能得到的! 附言:文章僅用於個人學習如有侵權請聯絡我刪除謝謝!

周小董 1、越努力,越幸運! 2、機會總是留給有準備的人! 3、承受別人不能承受的,才能得到別人不能得到的! 附言:文章僅用於個人學習,如有侵權,請聯絡我刪除,謝謝!...

【不斷更新貼】總結程式設計的技巧語法等需要多敲程式碼記憶掌握

1. void DrawRectangle( cv::Mat& img, cv::Rect  box ) { cv::rectangle(img,box.tl(),box.br(),cv::Scalar(g_rng.uniform(0, 255), g_rng.uni

Android Multimedia實戰(四)MediaProjection實現MediaMuxer實現錄屏為MP4Gif格式

MediaProjection可以用來捕捉螢幕,具體來說可以擷取當前螢幕和錄製螢幕視訊 (5.0以上) 先總結下系統是如何實現組合鍵截圖的: 都應該知道Android原始碼中對按鍵的捕獲位於檔案PhoneWindowManager.java中 當滿足按鍵

cortex-M3 的SVCPendSV異常作業系統(ucos實時系統)

SVC異常是? PendSV異常是? ucos 任務切換時機? ucos 如何滿足實時性(實現)? ucos中,systick的優先順序? SVC和PendSV SVC(系統服務呼叫,亦簡稱系統呼叫)和PendSV(可懸起系統呼叫),它們多用於在作業

Java8 運算子(進位制轉換原碼反碼和補碼位運算詳解運算子的優先順序)

進位制  binary:  1 -> 10 -> 11 -> 100  每次從後面進一位 octal:  7-> 10    八進位制是0-7之間,底數為8的計算 hexadecimal:A

《Kafka筆記》4Kafka架構其他元件整合

[TOC] # 1 kafka架構進階 ## 1.1 Kafka底層資料的同步機制(面試常問) 1、Kafka的Topic被分為多個分割槽,分割槽是是按照Segments(檔案段)儲存檔案塊。分割槽日誌是儲存在磁碟上的日誌序列,Kafka可以保證分割槽裡的事件是有序的。其中Leader負責對應分割槽的讀寫

python—day14內置函數2列表生成式生成器表達式模塊

left with open 列表生成式 表達式 兩件 style pytho per 數據 內置函數2、列表生成式與生成器表達式、模塊 內置函數2: 1 # pow(x,y,z) x,y,z x的y次方除於z 得出的結果是除數和余數 2 print(pow

Lambda01 編程範式lambda表達式匿名內部類lambda表達式的寫法

none com 定義 lam one code CA exti 次循環 1 編程範式   主要的編程範式有三種:命令式編程,聲明式編程和函數式編程。   1.1 命令式編程     關註計算機執行的步驟,就是告訴計算機先做什麽後做什麽   1.2 聲明式編程     

Python入門學習-DAY36-GIL全局解釋器鎖死鎖現象遞歸鎖信號量Event事件線程queue

可重入 def 代碼 threading 結果 運算 分析 rand pen 一、GIL全局解釋器鎖 1. 什麽是GIL全局解釋器鎖 GIL本質就是一把互斥鎖,相當於執行權限 在Cpython解釋器下,如果想實現並行可以開啟多個進程 2. 為何要有GIL 我們首先要知道,一

python學習第37天GIL鎖死鎖現象遞歸鎖信號量Event時間線程queue

++ func 修改 遞歸 切換 使用 解釋 計算 通過 一、GIL鎖 1. 什麽是GIL全局解釋器鎖 定義: In CPython, the global interpreter lock, or GIL, is a mutex that prevents multip

泛化能力訓練集測試集K折交叉驗證假設空間欠擬合過擬合正則化(L1正則化L2正則化)超引數

泛化能力(generalization): 機器學習模型。在先前未觀測到的輸入資料上表現良好的能力叫做泛化能力(generalization)。 訓練集(training set)與訓練錯誤(training error): 訓練機器學習模型使用的資料集稱為訓練集(tr

近期活動盤點:眾智創新賽大資料應用治理高峰會議2018未來醫療100強論壇(12.11-12.19)...

想知道近期有什麼最新活動?大數點為你整理的近期活動資訊在此: 全球資料資源開發者大賽 “眾智創新賽”初賽北京賽區 2018年12月11日 杭州市資料資源開發協會於2018年10月正式啟動全球資料資源開發者大賽暨 Data Tech 2018 大資料建模

css 的包含塊 負外邊字體文本行高

區別 網站 默認 lin 文檔 cal 一行 splay inline 一、包含塊 目的:確定元素的位置和相對大小(%) 1.正常文檔流元素和浮動元素 ---- 父元素的 content-box 2.絕對定位元素 ---- 父元素的

python+opencv打開攝像頭保存視頻拍照功能的實現

一個 tro fan 對比度 print [1] width port 視頻捕獲 本節主要學習的是通過 .VideoCapture() 調用攝像頭讀取圖像數據,以及使用 cap.set( propId , value ) cap.get( propId ) 獲取或