目錄
曲麻萊網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)建站,曲麻萊網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為曲麻萊上千多家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)營(yíng)銷網(wǎng)站建設(shè)要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的曲麻萊做網(wǎng)站的公司定做!【1】算法簡(jiǎn)介
【2】算子參數(shù)介紹
【3】完整代碼
Sobel算子是一種用于邊緣檢測(cè)的線性濾波器,如果把圖像看做是一個(gè)二維函數(shù),那么Sobel算子就是圖像在垂直和水平方向上變化的速度(即梯度)。Sobel算子在水平和垂直方向上做像素值的差分,能夠得到圖像梯度的近似值,在像素周圍進(jìn)行運(yùn)算時(shí),能夠減少噪聲帶來的影響。
其對(duì)應(yīng)的內(nèi)核函數(shù)為:
Sobel算子檢測(cè)方法對(duì)灰度漸變和噪聲較多的圖像處理效果較好,sobel算子對(duì)邊緣定位不是很準(zhǔn)確,圖像的邊緣不止一個(gè)像素;當(dāng)對(duì)精度要求不是很高時(shí),是一種較為常用的邊緣檢測(cè)方法。對(duì)于細(xì)小邊緣檢測(cè)要求較高的,可以采用scharr算子,它是在sobel算子的基礎(chǔ)上進(jìn)行改進(jìn),在不影響檢測(cè)速度的前提下,提高了邊緣檢測(cè)的精度。
sobel算子和scharr算子他們的卷積核大小是一樣的。這意味著他們計(jì)算起來,工作量是一樣的。
具體算法流程可以參考這篇文章:
https://blog.csdn.net/great_yzl/article/details/119709699?ops_request_misc=&request_id=&biz_id=102&utm_term=opencv%20sobel%E8%BE%B9%E7%BC%98%E6%A3%80%E6%B5%8B&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-4-119709699.nonecase&spm=1018.2226.3001.4187目錄一、基礎(chǔ)理論二、實(shí)戰(zhàn)1、對(duì)x方向微分2、對(duì)y方向微分3、線性混合總代碼參考資料一、基礎(chǔ)理論Sobel算子:用于邊緣檢測(cè)的離散微分算子。梯度公式:對(duì)于圖像而言,它是離散的,所以h的最小值只能是1了,那么這意味著,圖像中某個(gè)像素位置的梯度(以x方向?yàn)槔┑扔谒笥覂蓚€(gè)像素點(diǎn)的像素之差除以2。例:假設(shè)有一行像素是這樣分布的:123 155 173那么,像素值為155的像素位置x方向的梯度為(173 - 123)/2 = 25Prewit...https://blog.csdn.net/great_yzl/article/details/119709699?ops_request_misc=&request_id=&biz_id=102&utm_term=opencv%20sobel%E8%BE%B9%E7%BC%98%E6%A3%80%E6%B5%8B&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-4-119709699.nonecase&spm=1018.2226.3001.4187
【2】算子參數(shù)介紹cv::Sobel(image, // 輸入的圖像可以是三通道,也可是單通道
sobel, // 輸出
image_depth, // 圖像類型
xorder,yorder, // 內(nèi)核規(guī)格
kernel_size, // 正方形內(nèi)核的尺寸
alpha, beta); // 比例和偏移量
參數(shù)簡(jiǎn)介:
輸出圖像的像素類型是可以選擇的:無符號(hào)字符型、有符號(hào)整數(shù)或浮點(diǎn)數(shù)。對(duì)于sobel算子而言一般選擇類型為CV_16S。如果結(jié)果超出了像素值域的范圍,就會(huì)進(jìn)行飽和度運(yùn)算,在生成最終圖像之前,可以將結(jié)果縮放(相乘)alpha倍,并加上偏移量beta。
每個(gè)Sobel 掩碼都是一個(gè)方向上的導(dǎo)數(shù),因此要用兩個(gè)參數(shù)來指明將要應(yīng)用的內(nèi)核,即x方向和y 方向?qū)?shù)的階數(shù)。例如,如果xorder和yorder分別為1 和0,則得到水平方向Sobel內(nèi)核;如果分別是0和1,則得到垂直方向的內(nèi)核。內(nèi)核的尺寸也可以大于3×3??蛇x的尺寸有1、3、5 和7。內(nèi)核尺寸為1,表示一維Sobel 濾波器(1×3 或3×1)。
【3】完整代碼#include#include#includeusing namespace cv;
using namespace std;
int main(int argc, char** argv)
{
//載入原始圖
Mat src = imread("E:\\喬大花進(jìn)度\\11-28\\邊緣檢測(cè)\\3.jpg");
//【1】創(chuàng)建abs_grad_x,abs_grad_y,dst矩陣;
Mat grad_x, grad_y;
Mat abs_grad_x,abs_grad_y,dst;
//【2】顯示原始圖
imshow("原始圖",src);
//【3】求x方向梯度
Sobel(src,grad_x,CV_16S,1,0,3);
convertScaleAbs(grad_x,abs_grad_x);
imshow("x方向sobel",abs_grad_x);
Scharr(src, grad_y, CV_16S, 0, 1, 9);
convertScaleAbs(grad_y,abs_grad_y);
imshow("y方向sobel",abs_grad_y);
//【5】合并梯度(近似)
addWeighted(abs_grad_x,0.5,abs_grad_y,0.5,0,dst);
cout<< "Sobel輸出圖像的類型為:"<< dst.type()<< endl;
cout<< "Sobel輸出圖像的通道數(shù)"<< dst.channels()<< endl;
imshow("整體效果",dst);
waitKey(0);
system("pause");
destroyAllWindows();
return 0;
}
運(yùn)行結(jié)果:
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧