欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

一、Sobel算法

1、算法概述

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

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

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

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

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

2、主要函數(shù)

Sobel_x_or_y = cv2.Sobel(src, ddepth, dx, dy, dst, ksize, scale, delta, borderType)
  • src:傳入的圖像
  • ddepth:圖像的深度
  • dx、dy:指的是求導(dǎo)的階數(shù),0表示這個(gè)方向上沒(méi)有求導(dǎo),所填的數(shù)一般為0、1、2。
  • ksize:是Sobel算子的大小,即卷積核的大小,必須為奇數(shù)1、3、5、7。如果ksize=-1,就演變成為3x3的Scharr算子,scale是縮放導(dǎo)數(shù)的比例常數(shù),默認(rèn)情況為沒(méi)有伸縮系數(shù)。
  • borderType:是判斷圖像邊界的模式,這個(gè)參數(shù)默認(rèn)值為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");
	//黑白圖像邊緣檢測(cè)結(jié)果較為明顯
	Mat gray_img;
	cvtColor(img, gray_img, COLOR_BGR2GRAY);
	Mat resultX, resultY, resultXY;
	//-------------Sobel邊緣檢測(cè)--------------
	//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邊緣檢測(cè)------------------------
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é)果上的一個(gè)值,結(jié)果返回uint類(lèi)型的圖像
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圖像處理(八)邊緣檢測(cè)

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

相關(guān)文章

  • C語(yǔ)言實(shí)現(xiàn)楊輝三角實(shí)例

    C語(yǔ)言實(shí)現(xiàn)楊輝三角實(shí)例

    這篇文章主要介紹了C語(yǔ)言實(shí)現(xiàn)楊輝三角的方法,主要通過(guò)數(shù)組簡(jiǎn)單實(shí)現(xiàn),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2014-09-09
  • C++選擇排序算法實(shí)例

    C++選擇排序算法實(shí)例

    這篇文章主要介紹了C++選擇排序算法實(shí)例,本文先是介紹了什么是選擇排序,然后給出了實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2014-10-10
  • C語(yǔ)言算法練習(xí)之?dāng)?shù)組元素排序

    C語(yǔ)言算法練習(xí)之?dāng)?shù)組元素排序

    這篇文章主要為大家介紹了C語(yǔ)言算法練習(xí)中數(shù)組元素排序的實(shí)現(xiàn)方法,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)C語(yǔ)言有一定幫助,需要的可以參考一下
    2022-09-09
  • 基于C語(yǔ)言實(shí)現(xiàn)隨機(jī)點(diǎn)名器(附源碼)

    基于C語(yǔ)言實(shí)現(xiàn)隨機(jī)點(diǎn)名器(附源碼)

    這篇文章主要為大家詳細(xì)介紹如何基于C語(yǔ)言實(shí)現(xiàn)一個(gè)簡(jiǎn)單的隨機(jī)點(diǎn)名器,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起動(dòng)手嘗試一下
    2022-07-07
  • C++ map的簡(jiǎn)單使用實(shí)現(xiàn)

    C++ map的簡(jiǎn)單使用實(shí)現(xiàn)

    map是STL的一個(gè)關(guān)聯(lián)容器,它以<key,value>一對(duì)一的形式存儲(chǔ),且map的內(nèi)部自建一個(gè)紅黑樹(shù),使得其可以自動(dòng)排序,本文就介紹一下C++ map的簡(jiǎn)單使用,感興趣的可以了解一下
    2021-05-05
  • Redis的新特性懶惰刪除Lazy Free詳解

    Redis的新特性懶惰刪除Lazy Free詳解

    這篇文章主要介紹了Redis的新特性懶惰刪除Lazy Free詳解,Redis4.0新增了非常實(shí)用的lazy free特性,從根本上解決Big Key(主要指定元素較多集合類(lèi)型Key)刪除的風(fēng)險(xiǎn),需要的朋友可以參考下
    2019-06-06
  • 淺析C++函數(shù)模板和類(lèi)模板

    淺析C++函數(shù)模板和類(lèi)模板

    C++語(yǔ)言的模板技術(shù)包括函數(shù)模板和類(lèi)模板,模板技術(shù)是一種代碼重用技術(shù),函數(shù)和類(lèi)是C++語(yǔ)言中兩種主要的重用代碼形式,這篇文章主要介紹了C++函數(shù)模板和類(lèi)模板,需要的朋友可以參考下
    2022-07-07
  • Qt使用事件與定時(shí)器實(shí)現(xiàn)字幕滾動(dòng)效果

    Qt使用事件與定時(shí)器實(shí)現(xiàn)字幕滾動(dòng)效果

    我們經(jīng)常能夠在外面看到那種滾動(dòng)字幕,那么本文就拿Qt來(lái)做一個(gè)吧,本文將使用事件與定時(shí)器實(shí)現(xiàn)字幕滾動(dòng)的效果,感興趣的小伙伴可以了解一下
    2023-06-06
  • 利用QT實(shí)現(xiàn)圖片瀏覽器的示例詳解

    利用QT實(shí)現(xiàn)圖片瀏覽器的示例詳解

    這篇文章主要和大家分享一個(gè)小案例:利用QT制作一個(gè)小的圖片瀏覽器,要求可以顯示jpg、jpeg、png、bmp,還可以從電腦上拖動(dòng)圖到窗口并顯示出來(lái),感興趣的可以了解一下
    2023-02-02
  • Qt實(shí)現(xiàn)模糊匹配功能的實(shí)例詳解

    Qt實(shí)現(xiàn)模糊匹配功能的實(shí)例詳解

    對(duì)于瀏覽器的使用,我想大家一定不會(huì)陌生吧,輸入要搜索的內(nèi)容時(shí),會(huì)出現(xiàn)相應(yīng)的匹配信息。本文就來(lái)用Qt實(shí)現(xiàn)模糊匹配功能,感興趣的可以了解一下
    2022-10-10

最新評(píng)論