影象區域性與分割(一)
OpenCV中的取樣函式cvInitLineIterator()和CV_NEXT_LINE_POINT(),可以很容易對任意直線上的畫素進行取樣。
CVAPI(int) cvInitLineIterator(const CvArr* image,CvPoint pt1, CvPoint pt2,
CvLineIterator* line_iterator,
int connectivityCV_DEFAULT(8),
int
輸入引數image可以是任意資料型別和任何通道數
點pt1和pt2是線段的兩個端點。
迭代器line_iterator說明直線上兩個畫素之間的移動步長。
如果影象是多通道的,每次呼叫CV_NEXT_LINE_POINT()函式都使line_iterator指向下一個畫素。
每個通道的畫素值可同時用line_iterator.ptr[0],line_iterator.ptr[1],line_iterator.ptr[2]依次得到。
下面看一個具體應用:
從一個視訊檔案中讀取所有畫素的GRB值,收集這些數值並將其分成三個檔案。
#include <iostream> #include <opencv2/opencv.hpp> #include <opencv2/highgui.hpp> using namespace std; using namespace cv; #define CVX_RED CV_RGB(0xff, 0x00, 0x00) #define CVX_GREEN CV_RGB(0x00, 0xff, 0x00) #define CVX_BLUE CV_RGB(0x00, 0x00, 0xff) int main() { /*1、載入一個視訊*/ const char videoname[] = "/Users/linwang/LinMovie/Wolf.mp4"; //通過引數設定要讀取的檔案,返回一個指向capture的結構指標 CvCapture * capture = cvCreateFileCapture(videoname); /*2、設定相關變數*/ int max_buffer = 0; //返回直線上迭代的點的個數 IplImage * rawIamge; CvLineIterator iterator; //迭代器 /*3、準備寫入檔案*/ FILE * ftprb = fopen("blines.csv","w"); FILE * ftprg = fopen("glines.csv","w"); FILE * ftprr = fopen("rlines.csv","w"); CvPoint pt1 , pt2; for(;;) { //從攝像頭或視訊抓去幀 if(!cvGrabFrame(capture)) { break; } //取回由函式抓取的影象 rawIamge = cvRetrieveFrame(capture); //返回線上迭代的點的個數 max_buffer = cvInitLineIterator(rawIamge, pt1, pt2, &iterator); for(int j = 0;j<max_buffer;j++) { fprintf(ftprb, "%d,",iterator.ptr[0]); fprintf(ftprg, "%d,",iterator.ptr[1]); fprintf(ftprr, "%d,",iterator.ptr[2]); iterator.ptr[2] = 255; //red做一個標記 CV_NEXT_LINE_POINT(iterator); //迭代到寫一個畫素 } fprintf(ftprb, "/n"); fprintf(ftprg, "/n"); fprintf(ftprr, "/n"); } fclose(ftprb); fclose(ftprg); fclose(ftprr); cvReleaseCapture(&capture); }
相關推薦
影象區域性與分割(一)
OpenCV中的取樣函式cvInitLineIterator()和CV_NEXT_LINE_POINT(),可以很容易對任意直線上的畫素進行取樣。 CVAPI(int) cvInitLineIterator(const CvArr* image,CvPoint pt1
影象特徵描述與匹配(一)——BRIEF特徵點描述與匹配
傳統的特徵點描述子如SIFT,SURF描述子,每個特徵點採用128維(SIFT)或者64維(SURF)向量去描述,每個維度上佔用4位元組,SIFT需要128×4=512位元組記憶體,SURF則需要256
眼底影象血管增強與分割--(2)Gabor濾波演算法原理及實現
Gabor濾波演算法 維基裡給出的解釋,“In image processing, aGabor filter is a linear filter used fortextureanalysis,
基於 keras的全卷積網路u-net端到端醫學影象多型別影象分割(一)
有醫院的朋友,需要幫忙完成一個影象分割的任務,提供了一些資料,看了下資料,灰度圖,覺得設計特徵再做分割太麻煩。直接整神經網路吧。不用費神設計特徵,省事,畢竟只是幫個忙而已。 1. 查詢方案 顯然,這個任務,早有前人做過無數次了,這麼熱點的領域,簡直一搜一大把。搜尋結
影象分割(一)Contour Detection and Hierarchical Image Segmentation
三個部分: gPb: global probability of boundary OWT: Oriented Watershed Transform UCM: Ultrametric Contour Map 針對各個畫素,計算其作為邊緣的權值(可能性)
Tomcat--安裝與部署(一)
實現 get original servle body public -- ont str 一、Tomcat背景 自從JSP發布之後,推出了各式各樣的JSP引擎。Apache Group在完成GNUJSP1.0的開發以後,開始考慮在SUN的JSWDK基礎上開發一個可以
JVM中class文件探索與解析(一)
範圍 protected test except itl 指向 strac 相關 父類索引 一直想成為一名優秀的架構師的我,轉眼已經工作快兩年了,對於java內核了解甚少,閑來時間,看看JVM,吧自己的一些研究寫下來供大家參考,有不對的地方請指正。 廢話不多說,一起來看看J
內核調試神器SystemTap — 簡單介紹與使用(一)
kprobe utils its preview response art sym about output a linux trace/probe tool. 官網:https://sourceware.org/systemtap/ 簡單介紹 S
三維渲染引擎設計與時間(一)
註冊 三維 特定 渲染引擎 交互 文件 集合 工具 調度 一、初始osg 三維渲染引擎:為了實現三維場景圖形的結構管理和繪制而提供的一系列API的集合。包括構建層和交互層。 Crystal Space、Java3D、Unreal…… osg庫:構件場景圖形的場景圖形節點類、
機器學習之SVM初解與淺析(一):最大距離
機器學習 svm 最大距離 2 / ||w|| 這段時間在看周誌華大佬的《機器學習》,在看書的過程中,有時候會搜搜其他人寫的文章,對比來講,周教授講的內容還是比較深刻的,但是前幾天看到SVM這一章的時候,感覺甚是晦澀啊,第一感覺就是比較抽象,特別是對於像本人這種I
機器學習之SVM初解與淺析(一):
機器學習 svm 最大距離 2 / ||w||sdsshngshan‘gccha 這段時間在看周誌華大佬的《機器學習》,在看書的過程中,有時候會搜搜其他人寫的文章,對比來講,周教授講的內容還是比較深刻的,但是前幾天看到SVM這一章的時候,感覺甚是晦澀啊,第一感覺就
WPF入門教程系列六——布局介紹與Canvas(一)
mouse 建議 geo 自動調整 範圍 添加 ges ans colors 從這篇文章開始是對WPF中的界面如何布局做一個較簡單的介紹,大家都知道:UI是做好一個軟件很重要的因素,如果沒有一個漂亮的UI,功能做的再好也無法吸引很多用戶使用,而且沒有漂亮的界面,那麽普通用
MySQL系列:基於binlog的增量訂閱與消費(一)
clas 需要 val tro ali cat tor rip 變化 在一些業務場景中,像在數據分析中我們有時候需要捕獲數據變化(CDC);在數據審計中,我們也往往需要知道數據從這個點到另一個點的變化;同樣在實時分析中,我們有時候需要看到某個值得實時變化等。 要解決以上
SQL註入漏洞的分析與利用(一)
ces mysql 得出 必須 排序 快速搭建 oracle 學習筆記 min SQL註入的核心思想 黑客在正常的需要調用數據庫的URL後面構造一段數據庫查詢代碼,然後根據返回的結果,從而獲得想要的某些數據。SQL結構化查詢語言,絕大多數關系型數據庫(MySQL、Acces
Kotlin學習與實踐 (一)基礎
eat 代碼塊 數據 eas 特性 neu 簡潔 跟著 pla 1、 函數和變量 直奔主題不啰嗦 * a.關鍵字 fun 用來聲明函數。* b.參數的類型寫在參數名字的後面。* c.函數可以定義再文件的最外層,不需要把它放入類中。* d.數組就是類。 和Java不同Kotl
SSH原理與運用(一):遠程登錄
獲得 回車 you 密碼登錄 很難 windows 註釋 設備 範圍 SSH是每一臺Linux電腦的標準配置。 隨著Linux設備從電腦逐漸擴展到手機、外設和家用電器,SSH的使用範圍也越來越廣。不僅程序員離不開它,很多普通用戶也每天使用。 SSH具備多種功能,可以用於很多
hadoop雲盤client的設計與實現(一)
white 下一跳 -c 文件 。。 edi track ++ ava 近期在hadoop雲盤client項目。在做這個項目曾經對hadoop是一點都不了解呀,在網
Docker學習與實踐(一)
docker一、docker的安裝 1.依賴包安裝 yum install -y yum-utils device-mapper-persistent-data lvm2 2.添加yum源 yum-config-manager --add-repo https://mirrors.ustc.edu.cn/do
大數據入門第十九天——推薦系統與mahout(一)入門與概述
tps font 解決 技術分享 tar nbsp mage cnblogs clas 一、推薦系統概述 為了解決信息過載和用戶無明確需求的問題,找到用戶感興趣的物品,才有了個性化推薦系統。其實,解決信息過載的問題,代表性的解決方案是分類目錄和搜索引擎,如hao123
mysql數據庫索引優化與實踐(一)
都是 分鐘 必備 範圍查詢 無法使用 RM strong span 實踐 前言 mysql數據庫是現在應用最廣泛的數據庫系統。與數據庫打交道是每個Java程序員日常工作之一,索引優化是必備的技能之一。 為什麽要了解索引 真實案例 案例一:大學有段時間學習爬蟲,爬取了知乎30