最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

OpenCV實現(xiàn)Sobel邊緣檢測的示例

 更新時間:2022年08月03日 15:27:29   作者:點云俠  
本文主要介紹了OpenCV實現(xiàn)Sobel邊緣檢測的示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

一、Sobel算法

1、算法概述

Sobel邊緣檢測算法比較簡單,實際應(yīng)用中效率比canny邊緣檢測效率要高,但是邊緣不如Canny檢測的準確,然而在很多實際應(yīng)用的場合,sobel邊緣卻是首選,Sobel算子是高斯平滑與微分操作的結(jié)合體,所以其抗噪聲能力很強,用途較多。尤其是在對效率要求較高,而對細紋理不太關(guān)系的時候。

使用Sobel算子提取圖像邊緣分3個步驟:

提取X方向的邊緣,X方向一階Sobel邊緣檢測算法為:

提取Y方向的邊緣,Y方向一階Sobel邊緣檢測算法為:

綜合兩個方向的邊緣信息得到整幅圖像的邊緣。

2、主要函數(shù)

Sobel_x_or_y = cv2.Sobel(src, ddepth, dx, dy, dst, ksize, scale, delta, borderType)
  • src:傳入的圖像
  • ddepth:圖像的深度
  • dxdy:指的是求導(dǎo)的階數(shù),0表示這個方向上沒有求導(dǎo),所填的數(shù)一般為0、1、2。
  • ksize:是Sobel算子的大小,即卷積核的大小,必須為奇數(shù)1、3、5、7。如果ksize=-1,就演變成為3x3的Scharr算子,scale是縮放導(dǎo)數(shù)的比例常數(shù),默認情況為沒有伸縮系數(shù)。
  • borderType:是判斷圖像邊界的模式,這個參數(shù)默認值為cv2.BORDER_DEFAULT。
  • dstdst之后的參數(shù)都是可選參數(shù)。

二、C++代碼

#include <iostream>
#include <opencv2\opencv.hpp>

using namespace cv;
using namespace std;

int main()
{
	//----------------讀取圖像-----------------
	Mat img = imread("1.jpg");
	//黑白圖像邊緣檢測結(jié)果較為明顯
	Mat gray_img;
	cvtColor(img, gray_img, COLOR_BGR2GRAY);
	Mat resultX, resultY, resultXY;
	//-------------Sobel邊緣檢測--------------
	//X方向一階邊緣
	Sobel(img, resultX, CV_16S, 2, 0, 1);
	convertScaleAbs(resultX, resultX);

	//Y方向一階邊緣
	Sobel(img, resultY, CV_16S, 0, 1, 3);
	convertScaleAbs(resultY, resultY);

	//整幅圖像的一階邊緣
	resultXY = resultX + resultY;

	//顯示圖像
	imshow("resultX", resultX);
	imshow("resultY", resultY);
	imshow("resultXY", resultXY);
	waitKey(0);
	return 0;
}

三、python代碼

import cv2

img = cv2.imread("1.jpg")
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

# -------------------Sobel邊緣檢測------------------------
x = cv2.Sobel(gray_img, cv2.CV_16S, 1, 0)
y = cv2.Sobel(gray_img, cv2.CV_16S, 0, 1)
# cv2.convertScaleAbs(src[, dst[, alpha[, beta]]])
# 可選參數(shù)alpha是伸縮系數(shù),beta是加到結(jié)果上的一個值,結(jié)果返回uint類型的圖像
Scale_absX = cv2.convertScaleAbs(x)  # convert 轉(zhuǎn)換  scale 縮放
Scale_absY = cv2.convertScaleAbs(y)
result = cv2.addWeighted(Scale_absX, 0.5, Scale_absY, 0.5, 0)
# ----------------------顯示結(jié)果----------------------------
cv2.imshow('img', gray_img)
cv2.imshow('Scale_absX', Scale_absX)
cv2.imshow('Scale_absY', Scale_absY)
cv2.imshow('result', result)
cv2.waitKey(0)
cv2.destroyAllWindows()

四、結(jié)果展示

1、灰度圖

2、X方向一階邊緣

2、Y方向一階邊緣

3、整幅圖像的一階邊緣

五、相關(guān)鏈接

[1] python+OpenCV圖像處理(八)邊緣檢測

到此這篇關(guān)于OpenCV實現(xiàn)Sobel邊緣檢測的示例的文章就介紹到這了,更多相關(guān)OpenCV Sobel邊緣檢測內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 用C語言實現(xiàn)通訊錄

    用C語言實現(xiàn)通訊錄

    這篇文章主要為大家詳細介紹了用C語言實現(xiàn)通訊錄,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • C/C++實現(xiàn)通訊錄管理系統(tǒng)(附源碼)

    C/C++實現(xiàn)通訊錄管理系統(tǒng)(附源碼)

    這篇文章主要為大家詳細介紹了如何利用C++實現(xiàn)通訊錄管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-12-12
  • C語言實現(xiàn)牛頓迭代法解方程詳解

    C語言實現(xiàn)牛頓迭代法解方程詳解

    這篇文章主要介紹了C語言實現(xiàn)牛頓迭代法解方程詳解的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • C語言實現(xiàn)bmp圖像對比度擴展

    C語言實現(xiàn)bmp圖像對比度擴展

    這篇文章主要為大家詳細介紹了C語言實現(xiàn)bmp圖像對比度擴展,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • C++ 學(xué)習(xí)之旅二 說一說C++頭文件

    C++ 學(xué)習(xí)之旅二 說一說C++頭文件

    作為一個二手的.net程序員,你看到了C++頭文件一定就犯迷糊了,這到底是個啥玩意。再我糾結(jié)了24個小時, google20次,度娘10下,看過10來騙文章以后,我可能稍微開竅了。我對C++頭文件總結(jié),與.net比較如下
    2012-11-11
  • Qt實現(xiàn)界面滑動切換效果的思路詳解

    Qt實現(xiàn)界面滑動切換效果的思路詳解

    這篇文章主要介紹了Qt實現(xiàn)界面滑動切換效果,主要包括設(shè)計思路及主要函數(shù)講解,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • C++文件相關(guān)函數(shù)CreateFile|ReadFile|WriteFile用法詳解

    C++文件相關(guān)函數(shù)CreateFile|ReadFile|WriteFile用法詳解

    這篇文章主要為大家詳細介紹了c++有關(guān)文件創(chuàng)建、讀取和寫入的api:CreateFile、ReadFile、WriteFile的具體使用,需要的可以參考下
    2023-04-04
  • C++ 的三種訪問權(quán)限與三種繼承方式

    C++ 的三種訪問權(quán)限與三種繼承方式

    我們知道C++中的類,有三種訪問權(quán)限(也稱作訪問控制),它們分別是public、protected、private,C++中繼承的方式還有多種。下面通過本文給大家詳細介紹,對c++中的訪問權(quán)限和繼承方式感興趣的朋友一起看看吧
    2016-11-11
  • C語言學(xué)習(xí)之關(guān)鍵字的示例詳解

    C語言學(xué)習(xí)之關(guān)鍵字的示例詳解

    關(guān)鍵字,這名字一聽,就很關(guān)鍵。而有些關(guān)鍵字,你可能不是很了解,更別談使用。所以,這篇文章將帶你見識常見的關(guān)鍵字,一起領(lǐng)略它們的風(fēng)采吧
    2022-10-10
  • c++傳輸文件到不同計算機上的示例代碼

    c++傳輸文件到不同計算機上的示例代碼

    這篇文章主要為大家詳細介紹了c++傳輸文件到不同計算機上的相關(guān)知識,文中的示例代碼簡潔易懂,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-03-03

最新評論

浦县| 松滋市| 呼和浩特市| 弥勒县| 剑阁县| 淳安县| 桦川县| 台州市| 宜良县| 中西区| 营山县| 宜良县| 阳朔县| 马公市| 年辖:市辖区| 肇东市| 闸北区| 永顺县| 西乌珠穆沁旗| 沙河市| 五大连池市| 前郭尔| 黄浦区| 河北省| 灵璧县| 嘉禾县| 惠来县| 英吉沙县| 虞城县| 鄱阳县| 梓潼县| 永川市| 铁力市| 尉犁县| 东至县| 时尚| 台东市| 林芝县| 垦利县| 尉犁县| 项城市|