當前位置:首頁 » 操作系統 » opencvsobel源碼

opencvsobel源碼

發布時間: 2022-05-07 16:29:05

Ⅰ Sobel運算元的C代碼

/**/unsignedchara00,a01,a02;unsignedchara10,a11,a12;unsignedchara20,a21,a22;voidMySobel(IplImage*gray,IplImage*gradient){CvScalarcolor;for(inti=1;i<gray->height-1;++i){for(intj=1;j<gray->width-1;++j){a00=cvGet2D(gray,i-1,j-1).val[0];a01=cvGet2D(gray,i-1,j).val[0];a02=cvGet2D(gray,i-1,j+1).val[0];a10=cvGet2D(gray,i,j-1).val[0];a11=cvGet2D(gray,i,j).val[0];a12=cvGet2D(gray,i,j+1).val[0];a20=cvGet2D(gray,i+1,j-1).val[0];a21=cvGet2D(gray,i+1,j).val[0];a22=cvGet2D(gray,i+1,j+1).val[0];//x方向上的近似導數doubleux=a20*(1)+a21*(2)+a22*(1)+(a00*(-1)+a01*(-2)+a02*(-1));//y方向上的近似導數doubleuy=a02*(1)+a12*(2)+a22*(1)+a00*(-1)+a10*(-2)+a20*(-1);color.val[0]=sqrt(ux*ux+uy*uy);cvSet2D(gradient,i,j,color);}}}//注釋:該程序需要在安裝Opencv軟體下運行。Matlabps=imread('D:14.jpg');%讀取圖像subplot(1,3,1)imshow(ps);title('原圖像');ps=rgb2gray(ps);[m,n]=size(ps);%用Sobel微分運算元進行邊緣檢測pa=edge(ps,'sobel');subplot(1,3,2);imshow(pa);title('Sobel邊緣檢測得到的圖像');

Ⅱ 如何使用cvsobel opencv

1.OpenCV確實是在運行時自動載入這些優化庫, 不需要運行cvUseOptimized()函數, 前提是庫的相關路徑注冊了環境變數(之前我沒注冊, 所以沒有載入成功).
可運行如下程序進行檢驗:
const char* opencv_libraries = 0;
const char* addon_moles = 0;
cvGetMoleInfo( 0, &opencv_libraries,&addon_moles );
printf( "OpenCV: %s\\r\\nAdd-on Moles: %s\\r\\n.", opencv_libraries, addon_moles);
如果自動載入成功會輸出:
OpenCV: cxcore: 1.0.0, cv: 1.0.0
Add-on Moles: ippcv-5.1.dll, ippi-5.1.dll, ipps-5.1.dll, ippvm-5.1.dll, ippcc-5.1.dll, mkl_p4.dll
此時再運行cvUseOptimized(1), 通過查看返回值, 可以知道有多少個函數被優化。

2.不同函數優化的程度不一。
用幾個函數測試了一下載入優化庫後的優化程度:
系統: P4(2.6G) 512MB XP VC6
測試圖像: 768×576 8UC1
循環100次
測試函數 cvSmooth(CV_GAUSSIAN,31*31) 2493ms(with IPP) 5498ms(without IPP)
測試函數 cvSobel(7*7) 1674ms(with IPP) 1672ms(without IPP)
測試函數 cvCanny(3*3) 2901ms(with IPP) 3385ms(without IPP)
可以看出不同函數優化的程度不一樣, cvSmooth優化程度很高, 性能提升50%多, cvSobel基本沒有變化, 網上有的老外還說用了IPP之後速度下降了 .
所以究竟用不用IPP(199美元呢), 還得各位測試一下自己的程序, 好在現在還有Evaluation版的IPP可以用。要是OpenCV下個版本能提供一份兒各個函數優化表就好了.

Ⅲ 你好,請問您怎麼用opencv檢測一幅圖片的邊緣,主要是怎麼進行圖片平滑還有怎麼應用Prewitt運算元、sobel!

說說我的做法~
在提取邊緣時,前處理工作很重要!且,噪音全都去掉是比較困難的是
1.可以先做平滑cvSmooth,去除噪音
2.可以用正規化或者直方圖均衡化來處理圖像像素~
3.用CLAHE演算法,增加對比度
4.prewitt,sobel,運算元都不是很精確,canny運算元雖比較好但是不能提取封閉輪廓。你可以用snake,或者GVFsnake來動態提取邊緣,但是之前得提取初始邊緣。
以上,如果你想用prewitt,sobel的話可以到opencv論壇去搜索,答案有很多。
http://www.opencv.org.cn/index.php/%E9%A6%96%E9%A1%B5這是論壇
http://www.opencv.org.cn/index.php/Canny%E8%BE%B9%E7%BC%98%E6%A3%80%E6%B5%8B這是canny檢測的例子
http://fsa.ia.ac.cn/opencv-doc-cn/opencv-doc-cn-0.9.7/ref/opencvref_cv.cn.htm這是函數的用法
祝你成功

Ⅳ 如何查找opencv中的函數

我們知道openCV是開源的圖像處理庫,所以我們有時候想查看一下某些關鍵函數的源碼,我常用的方法(針對Visual Studio開發平台)就是右鍵選擇要查找的函數或數據類型定義然後在彈出的快捷方式中選擇「轉到定義」(或「Go to definition」英文版本),這是就可以自動轉到函數定義部分。但是,openCV將很多函數被加入了函數庫,並被編譯成了dll,所以只能看到函數申明,沒法看到原始代碼。我的解決方法如下:(openCV2.3.1+VS2008)
1、首先要熟悉openCV安裝目錄,例如我的安裝目錄是F:\program files\opencv2.3.1。在這個目錄下面還有很多子目錄:3rdparty、android、build,data、doc、include、moles、samples和很多cmake文件。對於編程來說,僅僅需要build這一個文件夾就可以了,因為編程環境的配置只與這一個目錄有關,如:包含目錄配置、庫目錄配置,具體可以參考http://www.opencv.org.cn/index.php/VC_2008_Express下安裝OpenCV2.3.1。build目錄是編譯生成的目錄,就是用openCV源代碼編譯生成的2進制庫文件集(dll、lib和入口頭文件include)。以下是文檔組織結構截圖:

2、那其他文件夾下的文件都是幹嘛用的呢?其實源代碼就包含在這些文件夾下面,因為build文件夾就是在其他文件夾的基礎上CMake編譯生成的。(可以參考CMake編譯部分http://www.opencv.org.cn/index.php/VC_2008_Express下安裝OpenCV2.3.1)大部分源代碼放在moles文件夾下(如下截圖)

例如,core文件夾下就包含了基本數據類型的定義,imgproc文件夾下包含了常用的數字圖像處理函數源代碼:如cvCanny()、cvSobel()。
3、用CMake導出opencv 源碼,生成VC++項目,然後用vs打開工程,去裡面搜索整個工程

Ⅳ opencv用sobel運算元進行處理後的圖像,怎麼提取梯度信息。

給你一段代碼
void Gradient(Mat& InputArray, Mat& OutputArray)
{
//轉換為灰度圖像
Mat InputArray_gray(height, width, CV_32F);
cvtColor(InputArray, InputArray_gray, CV_RGB2GRAY);
// 創建X、Y方向梯度圖像變數
Mat grad_x, grad_y;
Mat abs_grad_x, abs_grad_y;// 梯度絕對值
// X方向梯度 並取絕對值
Sobel( InputArray_gray, grad_x, InputArray_gray.depth(), 1, 0);
convertScaleAbs( grad_x, abs_grad_x );
// Y方向梯度 並取絕對值
Sobel( InputArray_gray, grad_y, InputArray_gray.depth(), 0, 1);
convertScaleAbs( grad_y, abs_grad_y );
//計算梯度值的平方
pow(abs_grad_x, 2.0f, abs_grad_x);
pow(abs_grad_y, 2.0f, abs_grad_y);
//OutputArray = abs_grad_x + abs_grad_y;
add(abs_grad_x, abs_grad_y, OutputArray, noArray(), CV_32F);
//顯示梯度平方
//imshow("Gradient", OutputArray);
//waitKey(0);
}

Ⅵ 我想知道opencv邊緣檢測中的sobel,canny運算元的數學原理需要去理解嗎,還是這直接記住它的功能就好!

如果要學習的話,有本書叫模擬影像學,可以拿來看一下,裡面各種運算元的原理講的很清楚。
如果只要有個初步理解,網路就行http://ke..com/view/676368.htm
http://ke..com/view/4709162.htm
這些運算元原理都很簡單的,學習一下不會花很多時間,建議你最好學習一下,知其然更要知其所以然。

Ⅶ 如何查看Opencv中自帶內部函數的源代碼

opencv都帶有這個函數的代碼,你在用的時候,選擇函數,然後右鍵選擇」go to denifition of cvCalOpticalFlowHS"--->然後就會跳 到定義cvCalOpticalFlowHS的定義文件,就會跳到cv.h頭文件來(說明cvCalOpticalFlowHS在cv.h文件中定義的),然後你去cv.cpp文件,按"Ctrl+F" 輸入函數名進行搜索,就能找到cvCalOpticalFlowHS函數的源文件了。
1、首先要熟悉openCV安裝目錄,例如我的安裝目錄是F:\program files\opencv2.3.1。在這個目錄下面還有很多子目錄:3rdparty、android、build,data、doc、include、moles、samples和很多cmake文件。對於編程來說,僅僅需要build這一個文件夾就可以了,因為編程環境的配置只與這一個目錄有關,如:包含目錄配置、庫目錄配置build目錄是編譯生成的目錄,就是用openCV源代碼編譯生成的2進制庫文件集(dll、lib和入口頭文件include)。

2、那其他文件夾下的文件都是幹嘛用的呢?其實源代碼就包含在這些文件夾下面,因為build文件夾就是在其他文件夾的基礎上CMake編譯生成的
例如,core文件夾下就包含了基本數據類型的定義,imgproc文件夾下包含了常用的數字圖像處理函數源代碼:如cvCanny()、cvSobel()。
3、用CMake導出opencv 源碼,生成VC++項目,然後用vs打開工程,去裡面搜索整個工程

Ⅷ 如何查找openCV函數源代碼

1、首先要熟悉openCV安裝目錄,例如我的安裝目錄是F:\program files\opencv2.3.1。在這個目錄下面還有很多子目錄:3rdparty、android、build,data、doc、include、moles、samples和很多cmake文件。對於編程來說,僅僅需要build這一個文件夾就可以了,因為編程環境的配置只與這一個目錄有關,如:包含目錄配置、庫目錄配置build目錄是編譯生成的目錄,就是用openCV源代碼編譯生成的2進制庫文件集(dll、lib和入口頭文件include)。

2、那其他文件夾下的文件都是幹嘛用的呢?其實源代碼就包含在這些文件夾下面,因為build文件夾就是在其他文件夾的基礎上CMake編譯生成的
例如,core文件夾下就包含了基本數據類型的定義,imgproc文件夾下包含了常用的數字圖像處理函數源代碼:如cvCanny()、cvSobel()。
3、用CMake導出opencv 源碼,生成VC++項目,然後用vs打開工程,去裡面搜索整個工程

Ⅸ opencv2.3.1中, sobel函數的源代碼在哪個文件中

OpenCV中好多函數都是封裝好了的,給你個鏈接地址,你看看能不能把源代碼導出來吧
http://blog.sina.com.cn/s/blog_5e8715490101fjed.html

Ⅹ OpenCV中不用庫函數實現sobel運算元

cvLoadImage("depth.png",1);參數是1載入的是彩色圖片。

熱點內容
華為電腦伺服器系統進不去提示 發布:2024-10-08 00:13:42 瀏覽:490
登錄密碼如何獲取 發布:2024-10-07 23:58:40 瀏覽:424
王者榮耀人機腳本 發布:2024-10-07 23:58:33 瀏覽:807
地標建築腳本 發布:2024-10-07 23:48:51 瀏覽:242
sqlorderby 發布:2024-10-07 23:42:13 瀏覽:958
qq秒源碼 發布:2024-10-07 23:41:37 瀏覽:471
51單片機編譯器 發布:2024-10-07 23:28:04 瀏覽:798
安卓手機陌陌封設備了怎麼搞 發布:2024-10-07 23:17:00 瀏覽:180
sql管理系統代碼 發布:2024-10-07 23:00:51 瀏覽:524
安卓什麼瀏覽器可以打開 發布:2024-10-07 23:00:51 瀏覽:121