强奸久久久久久久|草草浮力在线影院|手机成人无码av|亚洲精品狼友视频|国产国模精品一区|久久成人中文字幕|超碰在线视屏免费|玖玖欧洲一区二区|欧美精品无码一区|日韩无遮一区二区

首頁 > 廠商 > 經(jīng)驗 > sobel,幫我解釋個C程序Sobel算子

sobel,幫我解釋個C程序Sobel算子

來源:整理 時間:2023-08-27 11:07:33 編輯:智能門戶 手機版

本文目錄一覽

1,幫我解釋個C程序Sobel算子

RSA算法非常簡單,概述如下:找兩素數(shù)p和q取n=p*q取t=(p-1)*(q-1)取任何一個數(shù)e,要求滿足e<t并且e與t互素(就是最大公因數(shù)為1)取d*e%t==1
你留個網(wǎng)號吧,我教你.再看看別人怎么說的。

幫我解釋個C程序Sobel算子

2,Sobel算子的算子描述

在邊緣檢測中,常用的一種模板是Sobel 算子。Sobel 算子有兩個,一個是檢測水平邊緣的 ;另一個是檢測垂直邊緣的 。與Prewitt算子相比,Sobel算子對于象素的位置的影響做了加權,可以降低邊緣模糊程度,因此效果更好。Sobel算子另一種形式是各向同性Sobel(Isotropic Sobel)算子,也有兩個,一個是檢測水平邊緣的 ,另一個是檢測垂直邊緣的 。各向同性Sobel算子和普通Sobel算子相比,它的位置加權系數(shù)更為準確,在檢測不同方向的邊沿時梯度的幅度一致。將Sobel算子矩陣中的所有2改為根號2,就能得到各向同性Sobel的矩陣。由于Sobel算子是濾波算子的形式,用于提取邊緣,可以利用快速卷積函數(shù), 簡單有效,因此應用廣泛。美中不足的是,Sobel算子并沒有將圖像的主體與背景嚴格地區(qū)分開來,換言之就是Sobel算子沒有基于圖像灰度進行處理,由于Sobel算子沒有嚴格地模擬人的視覺生理特征,所以提取的圖像輪廓有時并不能令人滿意。 在觀測一幅圖像的時候,我們往往首先注意的是圖像與背景不同的部分,正是這個部分將主體突出顯示,基于該理論,我們給出了下面閾值化輪廓提取算法,該算法已在數(shù)學上證明當像素點滿足正態(tài)分布時所求解是最優(yōu)的。

Sobel算子的算子描述

3,sobel中的臨界值是什么意思

Sobel test是邊緣檢驗。Sobel test是一階方向導數(shù)極值法——一種檢測邊緣的新方法。一階方向導數(shù)極值法不用選取門限值Th.該方法首先沿邊緣的垂直方向求一階導數(shù),然后再檢測此一階導數(shù)的極值點(極大點或極小點),并把此極值點作為邊緣點而檢出.實驗證明該方法檢測的邊緣是很好的,即在不漏檢真實邊緣、不多檢假邊緣和邊緣定位精確這3個方面精度高。一階微分算法是一類經(jīng)典的人們常用的邊緣檢測算法,它的代表有Kirsch,Prewit,Sobel,Robert,Robinson,F(xiàn)rei和Chen算法.這些算法都是先用近似方法求梯度,然后再取一門限值Th,把梯度模值大于這個門限值Th的點作為階躍狀邊緣點檢出.雖然這類微分算法使用較普遍,但檢測邊緣的精度是比較低的.其中一個原因是選取合適的門限值Th是件很困難的事.這是因為有些邊緣處灰度變化很快,此時,梯度模值很大;而另外一些邊緣處灰度變化很緩慢,則該點的梯度模值很?。欢谝恍┓沁吘夵c處,灰度的變化速率介于上述兩者之間,這時,該點的梯度模值也介于上述兩個梯度值之間.在這種情況下,很難選取一個恰當?shù)拈T限值Th把兩個邊緣同時檢出,而又不檢出非邊緣點.如果把門限值Th選高一些,以便不檢出非邊緣點,則會漏檢掉較低梯度值的邊緣點;如果門限值Th選低一些,以便能檢出較低梯度值的邊緣點,則又會使具有較高梯度模值的非邊緣點被當作邊緣點而檢出.總之,對于上述這種情況,無論怎樣選取門限值Th都不會取得好的檢測結果.
不明白啊 = =!

sobel中的臨界值是什么意思

4,sobel算子 梯度方向有什么用

計算機視覺領域的一種重要處理方法。主要用于獲得數(shù)字圖像的一階梯度,常見的應用和物理意義是邊緣檢測。在技術上,它是一個離散的一階差分算子,用來計算圖像亮度函數(shù)的一階梯度之近似值。在圖像的任何一點使用此算子,將會產生該點對應的梯度矢量或是其法矢量。
給你一段代碼void gradient(mat& inputarray, mat& outputarray)//轉換為灰度圖像mat inputarray_gray(height, width, cv_32f);cvtcolor(inputarray, inputarray_gray, cv_rgb2gray);// 創(chuàng)建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);}

5,Sobel算子是什么

C++Builder下的sobel算子的程序如下:/// <summary> /// 按 Sobel 算子進行邊緣檢測 /// </summary> /// <param name= "b "> 位圖流 </param> /// <returns> </returns> public Bitmap Sobel(Bitmap b) Matrix3x3 m = new Matrix3x3(); // -1 -2 -1 // 0 0 0 // 1 2 1 m.Init(0); m.TopLeft = m.TopRight = -1; m.BottomLeft = m.BottomRight = 1; m.TopMid = -2; m.BottomMid = 2; Bitmap b1 = m.Convolute((Bitmap)b.Clone()); // -1 0 1 // -2 0 2 // -1 0 1 m.Init(0); m.TopLeft = m.BottomLeft = -1; m.TopRight = m.BottomRight = 1; m.MidLeft = -2; m.MidRight = 2; Bitmap b2 = m.Convolute((Bitmap)b.Clone()); // 0 1 2 // -1 0 1 // -2 -1 0 m.Init(0); m.TopMid = m.MidRight = 1; m.MidLeft = m.BottomMid = -1; m.TopRight = 2; m.BottomLeft = -2; Bitmap b3 = m.Convolute((Bitmap)b.Clone()); // -2 -1 0 // -1 0 1 // 0 1 2 m.Init(0); m.TopMid = m.MidLeft = -1; m.MidRight = m.BottomMid = 1; m.TopLeft = -2; m.BottomRight = 2; Bitmap b4 = m.Convolute((Bitmap)b.Clone()); // 梯度運算 b = Gradient(Gradient(b1, b2), Gradient(b3, b4)); b1.Dispose(); b2.Dispose(); b3.Dispose(); b4.Dispose(); return b; } // end of Sobel
在邊沿檢測中,常用的一種模板是Sobel 算子。Sobel 算子有兩個,一個是檢測水平邊沿的 ;另一個是檢測垂直平邊沿的 。與 和 相比,Sobel算子對于象素的位置的影響做了加權,因此效果更好。Sobel算子另一種形式是各向同性Sobel(Isotropic Sobel)算子,也有兩個,一個是檢測水平邊沿的 ,另一個是檢測垂直平邊沿的 。各向同性Sobel算子和普通Sobel算子相比,它的位置加權系數(shù)更為準確,在檢測不同方向的邊沿時梯度的幅度一致。由于建筑物圖像的特殊性,我們可以發(fā)現(xiàn),處理該類型圖像輪廓時,并不需要對梯度方向進行運算,所以程序并沒有給出各向同性Sobel算子的處理方法。 由于Sobel算子是濾波算子的形式,用于提取邊緣,可以利用快速卷積函數(shù), 簡單有效,因此應用廣泛。美中不足的是,Sobel算子并沒有將圖像的主體與背景嚴格地區(qū)分開來,換言之就是Sobel算子沒有基于圖像灰度進行處理,由于Sobel算子沒有嚴格地模擬人的視覺生理特征,所以提取的圖像輪廓有時并不能令人滿意。 在觀測一幅圖像的時候,我們往往首先注意的是圖像與背景不同的部分,正是這個部分將主體突出顯示,基于該理論,我們給出了下面閾值化輪廓提取算法,該算法已在數(shù)學上證明當像素點滿足正態(tài)分布時所求解是最優(yōu)的。.NET代碼如下for(Times=0;Times<128&&iThreshold!=iNewThreshold;Times++) iThreshold=iNewThreshold; lP1=0; lP2=0; lS1=0; lS2=0; for(i=iMinGray;i<iThreshold;i++) lP1+=Histogram*i; lS1+=Histogram; } iMean1Gray=lP1/lS1; for(i=iThreshold;i<iMaxGray;i++) lP2+=Histogram*i; lS2+=Histogram; } iMean2Gray=lP2/lS2; iNewThreshold=(iMean1Gray+iMean2Gray)/2; }補充Sobel算子的矩陣表達式:Sobel1=[-1 -2 -1; %檢測水平邊沿的Sobel算子 0 0 0; 1 2 1];Sobel2=[-1 0 1; %檢測垂直平邊沿的Sobel算子 -2 0 2; -1 0 1];
c++builder下的sobel算子的程序如下: /// /// 按 sobel 算子進行邊緣檢測 /// /// 位圖流 /// public bitmap sobel(bitmap b) { matrix3x3 m = new matrix3x3(); // -1 -2 -1 // 0 0 0 // 1 2 1 m.init(0); m.topleft = m.topright = -1; m.bottomleft = m.bottomright = 1; m.topmid = -2; m.bottommid = 2; bitmap b1 = m.convolute((bitmap)b.clone()); // -1 0 1 // -2 0 2 // -1 0 1 m.init(0); m.topleft = m.bottomleft = -1; m.topright = m.bottomright = 1; m.midleft = -2; m.midright = 2; bitmap b2 = m.convolute((bitmap)b.clone()); // 0 1 2 // -1 0 1 // -2 -1 0 m.init(0); m.topmid = m.midright = 1; m.midleft = m.bottommid = -1; m.topright = 2; m.bottomleft = -2; bitmap b3 = m.convolute((bitmap)b.clone()); // -2 -1 0 // -1 0 1 // 0 1 2 m.init(0); m.topmid = m.midleft = -1; m.midright = m.bottommid = 1; m.topleft = -2; m.bottomright = 2; bitmap b4 = m.convolute((bitmap)b.clone()); // 梯度運算 b = gradient(gradient(b1, b2), gradient(b3, b4)); b1.dispose(); b2.dispose(); b3.dispose(); b4.dispose(); return b; } // end of sobel
文章TAG:解釋程序算子sobel

最近更新