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

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

sobel,幫我解釋個(gè)C程序Sobel算子

來(lái)源:整理 時(shí)間:2023-08-27 11:07:33 編輯:智能門(mén)戶(hù) 手機(jī)版

本文目錄一覽

1,幫我解釋個(gè)C程序Sobel算子

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

幫我解釋個(gè)C程序Sobel算子

2,Sobel算子的算子描述

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

Sobel算子的算子描述

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

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

sobel中的臨界值是什么意思

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

計(jì)算機(jī)視覺(jué)領(lǐng)域的一種重要處理方法。主要用于獲得數(shù)字圖像的一階梯度,常見(jiàn)的應(yīng)用和物理意義是邊緣檢測(cè)。在技術(shù)上,它是一個(gè)離散的一階差分算子,用來(lái)計(jì)算圖像亮度函數(shù)的一階梯度之近似值。在圖像的任何一點(diǎn)使用此算子,將會(huì)產(chǎn)生該點(diǎn)對(duì)應(yīng)的梯度矢量或是其法矢量。
給你一段代碼void gradient(mat& inputarray, mat& outputarray)//轉(zhuǎn)換為灰度圖像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;// 梯度絕對(duì)值// x方向梯度 并取絕對(duì)值 sobel( inputarray_gray, grad_x, inputarray_gray.depth(), 1, 0); convertscaleabs( grad_x, abs_grad_x );// y方向梯度 并取絕對(duì)值 sobel( inputarray_gray, grad_y, inputarray_gray.depth(), 0, 1); convertscaleabs( grad_y, abs_grad_y );//計(jì)算梯度值的平方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 算子進(jìn)行邊緣檢測(cè) /// </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()); // 梯度運(yùn)算 b = Gradient(Gradient(b1, b2), Gradient(b3, b4)); b1.Dispose(); b2.Dispose(); b3.Dispose(); b4.Dispose(); return b; } // end of Sobel
在邊沿檢測(cè)中,常用的一種模板是Sobel 算子。Sobel 算子有兩個(gè),一個(gè)是檢測(cè)水平邊沿的 ;另一個(gè)是檢測(cè)垂直平邊沿的 。與 和 相比,Sobel算子對(duì)于象素的位置的影響做了加權(quán),因此效果更好。Sobel算子另一種形式是各向同性Sobel(Isotropic Sobel)算子,也有兩個(gè),一個(gè)是檢測(cè)水平邊沿的 ,另一個(gè)是檢測(cè)垂直平邊沿的 。各向同性Sobel算子和普通Sobel算子相比,它的位置加權(quán)系數(shù)更為準(zhǔn)確,在檢測(cè)不同方向的邊沿時(shí)梯度的幅度一致。由于建筑物圖像的特殊性,我們可以發(fā)現(xiàn),處理該類(lèi)型圖像輪廓時(shí),并不需要對(duì)梯度方向進(jìn)行運(yùn)算,所以程序并沒(méi)有給出各向同性Sobel算子的處理方法。 由于Sobel算子是濾波算子的形式,用于提取邊緣,可以利用快速卷積函數(shù), 簡(jiǎn)單有效,因此應(yīng)用廣泛。美中不足的是,Sobel算子并沒(méi)有將圖像的主體與背景嚴(yán)格地區(qū)分開(kāi)來(lái),換言之就是Sobel算子沒(méi)有基于圖像灰度進(jìn)行處理,由于Sobel算子沒(méi)有嚴(yán)格地模擬人的視覺(jué)生理特征,所以提取的圖像輪廓有時(shí)并不能令人滿(mǎn)意。 在觀測(cè)一幅圖像的時(shí)候,我們往往首先注意的是圖像與背景不同的部分,正是這個(gè)部分將主體突出顯示,基于該理論,我們給出了下面閾值化輪廓提取算法,該算法已在數(shù)學(xué)上證明當(dāng)像素點(diǎn)滿(mǎn)足正態(tài)分布時(shí)所求解是最優(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; }補(bǔ)充Sobel算子的矩陣表達(dá)式:Sobel1=[-1 -2 -1; %檢測(cè)水平邊沿的Sobel算子 0 0 0; 1 2 1];Sobel2=[-1 0 1; %檢測(cè)垂直平邊沿的Sobel算子 -2 0 2; -1 0 1];
c++builder下的sobel算子的程序如下: /// /// 按 sobel 算子進(jìn)行邊緣檢測(cè) /// /// 位圖流 /// 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()); // 梯度運(yùn)算 b = gradient(gradient(b1, b2), gradient(b3, b4)); b1.dispose(); b2.dispose(); b3.dispose(); b4.dispose(); return b; } // end of sobel
文章TAG:解釋程序算子sobel

最近更新

經(jīng)驗(yàn)文章排行榜