日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python-图像边缘化处理

發(fā)布時間:2023/12/20 python 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python-图像边缘化处理 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本文由本人原創(chuàng),僅作為自己的學(xué)習(xí)記錄

主要利用Sobel,用作邊緣檢測,它是一離散性差分算子,用來運算圖像亮度函數(shù)的灰度值。在圖像的任何一點使用此算子,將會產(chǎn)生對應(yīng)的灰度矢量或是其法矢量。

Sobel邊緣檢測通常帶有方向性,可以只檢測豎直邊緣或垂直邊緣或都檢測。

本文先對圖片進行大小處理,使得都是一個大小的圖片

然后從XY兩個方向檢測,然后利用addweight進行圖像混合

然后設(shè)置閾值,進行圖像二值化處理,本,文中設(shè)置的是100,如果原灰度值大于100,把灰度值設(shè)為0(黑色),因為邊緣為白色要變成黑色,如果小于100,設(shè)為255(白色)THRESH_BINARY_INV(二值化取反)

下面是代碼

#coding=utf-8 ?
import cv2 as cv
import os
import matplotlib.pyplot as plt

def set_img_size(path,file):
? ? src_img = cv.imread(file, cv.IMREAD_GRAYSCALE)
? ? dst_img= cv.resize(src_img,(220,350))
? ? cv.imwrite(path+'\\2_tmp.jpg',dst_img)
? ? return path+'\\2_tmp.jpg'
if __name__=="__main__":
? ? path=os.getcwd()
? ? file = path+'\\2.jpg'
? ? file_name = set_img_size(path,file)
? ? sobel_img = cv.imread(file_name, cv.IMREAD_GRAYSCALE)
? ??
? ? x= cv.Sobel(sobel_img,cv.CV_16S,1,0)#x方向邊緣檢測
? ? y= cv.Sobel(sobel_img,cv.CV_16S,0,1)
? ? #x,y方向分辨轉(zhuǎn)換為uint8(8位無符號)類型
? ? ux = cv.convertScaleAbs(x)
? ? uy = cv.convertScaleAbs(y)
? ? #x,y合并
? ? sb_img = cv.addWeighted(ux,0.5,uy,0.5,0)
? ??
? ? #設(shè)置閾值,如果原值大于100,設(shè)為0,因為邊緣為白色要變成黑色,如果小于100,設(shè)為255?
? ? retval,sb_img = cv.threshold(sb_img,100,255.0, cv.THRESH_BINARY_INV)
? ??
? ? cv.imshow("result",sb_img)
? ? #cv.waitKey(0) ?
? ? cv.destroyAllWindows()
? ? cv.imwrite(path+'\\2_result.jpg',sb_img)

總結(jié)

以上是生活随笔為你收集整理的python-图像边缘化处理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。