學習OpenCV——計算鄰接地區列表(build_adjoin)

最近遇到一個問題,就是在映像分割完成後,需要把相鄰的地區都列出來用於下一步計算,也就是說,我需要找到與任意一個地區相鄰的所有地區。最後在XX的啟發下終於完成,主要就是:1. 初始化每個像素有8條edge,分別串連相鄰的元素;2. 計算所有edge指向的元素是否屬於同一個region,如果屬於放棄,如果不屬於,則存放在一個regNum*regNum大小的Mat中; 代碼:#include "stdafx.h"#include "build_adjoin.h"typedef struct

批量處理映像

有很多時候,我們需要對一個檔案夾內的所有映像進行處理,這時一張張的Ctrl+F5就讓人太蛋疼了,所以就產生了映像批量處理。不扯了,直接上代碼:stdafx.h:// stdafx.h : include file for standard system include files,// or project specific include files that are used frequently, but// are changed infrequently//#pragma

學習OpenCV——Bayes貝葉斯分類

//openCV中貝葉斯分類器的API函數用法舉例#include "stdafx.h"#include "cv.h"#include "highgui.h"#include "cxcore.h"#include"opencv.hpp"#include "iostream"using namespace cv;using namespace std;//10個樣本特徵向量維數為12的訓練樣本集,第一列為該樣本的類別標籤double inputArr[10][13] = {1,0.708333,1

學習OpenCV——Surf簡化版

之前寫過一遍關於學習surf演算法的blog:http://blog.csdn.net/sangni007/article/details/7482960但是代碼比較麻煩,而且其中還涉及到flann演算法(其中的Random KDTree+KNN),雖然能看明白,但是比較費勁,今天在文檔中找到一個簡化版本:1.SurfFeatureDetector detector( minHessian );構造surf檢測器;   detector.detect( img_1, keypoints_1 );

學習OpenCV——初始化視頻第一幀

在很多視頻跟蹤或分割中,總是需要初始化第一幀,即在第一幀上畫一個框,或者標註前景與背景啊等等,今天就把初始化第一幀,在第一幀上畫一個框的代碼實現了一下,順便複習一下OpenCV裡面的滑鼠召回事件,在此貼上代碼,與大家分享,也方便以後尋找。#include "opencv2/opencv.hpp"#include "opencv2/highgui/highgui.hpp"#include <string>#include <iostream>#include

學習OpenCV——用OpenCv畫漫畫

 閑的時候用OpenCV畫漫畫也挺有意思,雖然效果不好(達不到上面所實現的效果),參數需要調整,還是大頭貼而且雜訊小的映像比較合適而且可以熟悉一下關於各種濾波的操作比如:雙邊濾波;#include "cv.h"#include "highgui.h"using namespace cv;using namespace std;int main(){string name="D:/cartoon0.jpg";Mat src1=imread(name,1);Mat

學習OpenCV——ORB簡化版&Location加速版

根據前面surf簡化版的結構,重新把ORB檢測的代碼給簡化以下,發現雖然速度一樣,確實能省好多行代碼,關鍵是有BruteForceMatcher<HammingLUT>matcher的幫忙,直接省的寫了一個函數;NB類型:classgpu::BruteForceMatcher_GPU再加上findHomography,之後perspectiveTransform就可以location,但是這樣速度很慢;於是改動一下,求matches的keypoints的x與y座標和的平均值,基本上就

學習OpenCV——滑鼠畫畫(分水嶺演算法)

cvSetMouseCallback :設定滑鼠事件的回呼函數 void cvSetMouseCallback ( const char* window_name, CvMouseCallback on_mouse, void* param=NULL );window_name :視窗的名字。on_mouse:指定視窗裡每次滑鼠事件發生的時候,被調用的函數指標。這個函數的原型應該為void Foo(int event, int x, int y, int flags, void* param);

學習OpenCV——OpenMP

轉自:http://www.cnblogs.com/yangyangcv/archive/2012/03/23/2413335.html openMP的一點使用經驗最近在看多核編程。簡單來說,由於現在電腦CPU一般都有兩個核,4核與8核的CPU也逐漸走入了尋常百姓家,傳統的單線程編程方式難以發揮多核CPU的強大功能,於是多核編程應運而生。按照我的理解,多核編程可以認為是對多線程編程做了一定程度的抽象,提供一些簡單的API,使得使用者不必花費太多精力來瞭解多線程的底層知識,從而提高編程效率。這兩天

學習OpenCV——滑鼠事件(畫框)

#include "cv.h"#include "highgui.h"bool check_line_state=false;IplImage* workImg;IplImage* imgshow;CvRect ROI_rect;void on_mouse4(int event, int x,int y,int flags,void* param){int thickness=2;CvPoint

學習OpenCV——繪製彩色長條圖(HSV2BGR)

#include <cv.h>#include <highgui.h>#include <iostream>using namespace std; int main( int argc, char** argv ){IplImage * src= cvLoadImage("D:/2.jpg"); IplImage* hsv = cvCreateImage( cvGetSize(src), 8, 3 );IplImage* h_plane =

學習OpenCV——一次顏色聚類

1.首先區分三個通道,畫出每個通道的長條圖;2.平滑長條圖,像素值等於前後共七種顏色數量的平均值;3.取波峰,波穀。(條件:顏色數亮s(i-2)<s(i-1)<s(i)>s(i+1)>s(i+2)或s(i-2)>s(i-1)>s(i)<s(i+1)<s(i+2)))4.計算算有顏色的組合,並存入一個一維矩陣中;5.顏色合并(利用map<int,int>);6.把原圖所有顏色與合并後的顏色計算距離,得出距離最近的合并顏色,在另一個原圖大小

學習OpenCV——Kmeans2演算法並驗證顏色種類(CvMat*&IplImage*指標的用法)

#include <cv.h>#include <highgui.h>#include <iostream>#define MAX_CLUSTERS (8)using namespace std;int main( int argc, char **argv){IplImage *imgA = cvLoadImage( "D:/1.jpg", CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR);if(imgA ==

每日一題(20)——高效安排見面會

一、題目在校園招聘的季節裡,為了能讓學生們更好地瞭解微軟亞洲研究院各研究組的情況,HR部門計劃為每一個研究組舉辦一次見面會,讓各 個研究組的員工能跟學生相互瞭解和交流。已知有n位學生,他們分別對m個研究組中的若干個感興趣。為了滿足所有學生的要求,HR希望每 個學生都能參加自己感興趣的所有見面會。如果每個見面會的時間為t,那麼,如何安排才能夠使得所有見面會的總時間最短? 最簡單的辦法,就是把m個研究組的見面會時間依次排開,那我們就要用m *

每日一題(28)——拆分數字

題目:將N拆分成多個整數相加和的形式,求出所有的形式 思路:用遞迴實現:使用一個list儲存首碼數字,輸出首碼與當前數字 代碼:#include <iostream>#include <list>using namespace std;//輸出首碼數字void print_list(list<int>::iterator iter1,list<int>::iterator iter2){for(list<int>::iterator

面試題18:順時針列印矩陣

分析:把矩陣想象成若干個圈,用一個迴圈列印矩陣,每次列印矩陣的一個圈#include "stdafx.h"#include <iostream>using namespace std;void PrintMatrixIncircle(int **nArr, int rows, int columns, int nStart){int nEndX = columns - 1 -nStart;int nEndY = rows - 1 -nStart;//從左至右列印一行for (int

學習OpenCV——滑鼠事件&亮暗化精度最高(與距離反比)&批處理

#include "stdafx.h"#include <cv.h>#include <highgui.h>#include <stdio.h>#include <math.h>#include "windows.h"#include <vector>#include <string>#include "iostream"using namespace std;typedef vector<string>

面試題19:包含min函數的棧

CStack.h:#pragma onceclass CStackElement{public:CStackElement(void){}CStackElement(int data, int min=0){m_nData = data;m_nMin = min;}~CStackElement(void){}public: int m_nData;int m_nMin;};class CStack{public:CStack(int

面試題20:棧的壓入、彈出序列

思路:如果下一個彈出的數字剛好是棧頂數字,則直接彈出。若下一個彈出的數字不在棧頂,則把壓棧序列中還沒有入棧的數字壓入輔助棧,直到把下一個需要彈出的數字壓入棧頂為止。若所有的數字都壓入棧了仍沒有找到下一個彈出的數字,則表明該序列不可能滴一個彈出序列。代碼:#include "stdafx.h"#include <iostream>#include <stack>using namespace std;bool IsPopOrder(int *pPush, int

學習OpenCV——EMD演算法

  //adapted by the example of leanring opencv by mikewolf//2008-11-26#include "stdafx.h"#include <cv.h>#include <highgui.h>int _tmain(int argc, _TCHAR* argv[]){ IplImage* src, *src1; src=cvLoadImage("lena.jpg", 1); src1=cvLoadImage(

總頁數: 61357 1 .... 19823 19824 19825 19826 19827 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.