系列文章目錄
基于PyQt5的桌面圖像調試仿真平臺開發(fā)(1)環(huán)境搭建
基于PyQt5的桌面圖像調試仿真平臺開發(fā)(2)UI設計和控件綁定
基于PyQt5的桌面圖像調試仿真平臺開發(fā)(3)黑電平處理
基于PyQt5的桌面圖像調試仿真平臺開發(fā)(4)白平衡處理
基于PyQt5的桌面圖像調試仿真平臺開發(fā)(5)亮度處理
基于PyQt5的桌面圖像調試仿真平臺開發(fā)(6)去馬賽克
基于PyQt5的桌面圖像調試仿真平臺開發(fā)(7)伽馬矯正
基于PyQt5的桌面圖像調試仿真平臺開發(fā)(8)銳化
基于PyQt5的桌面圖像調試仿真平臺開發(fā)(9)去噪
基于PyQt5的桌面圖像調試仿真平臺開發(fā)(10)色彩矩陣
基于PyQt5的桌面圖像調試仿真平臺開發(fā)(11)清晰度測試
基于PyQt5的桌面圖像調試仿真平臺開發(fā)(12)圖像灰度顯示
基于PyQt5的桌面圖像調試仿真平臺開發(fā)(13)圖像邊緣顯示
基于PyQt5的桌面圖像調試仿真平臺開發(fā)(14)色彩增強
基于PyQt5的桌面圖像調試仿真平臺開發(fā)(15)圖像融合
工程代碼:https://gitee.com/xiaoshixiao00/py-ispp
目錄
系列文章目錄
前言
一、是什么?
二、開發(fā)步驟和演示
1.怎么實現
2.編寫和測試
前言
圖像邊緣顯示也就是圖像邊緣檢測,常用于圖像銳化等圖像增強算法,圖像銳化就是邊緣檢測后增強,其實是邊緣檢測的一種運用。
一、是什么?
? ? ? ? 圖像邊緣檢測是指通過計算圖像中像素值變化的梯度或差異來識別出圖像中物體的邊緣。常用的邊緣檢測算法有Sobel算子、Prewitt算子、Laplacian算子、Canny算子等。這些算子通過對圖像中像素的灰度值或顏色值進行差分運算,找出像素值變化較大的區(qū)域,從而得到圖像中物體的邊緣信息。邊緣檢測在圖像處理與計算機視覺領域中有著廣泛的應用,例如目標檢測、圖像分割、人臉識別等。
二、開發(fā)步驟和演示
1.怎么實現
? ? ? ? 和前面銳化一樣,直接調用opencv的梯度算子即可,
cv2.Sobel(image_rgb,cv2.CV_64F,0,1,ksize=5)
cv2.Laplacian(image_rgb,cv2.CV_64F)
cv2.Scharr(image_rgb,cv2.CV_64F,0,1)
cv2.Canny(image_rgb,100,200)
2.編寫和測試
①,開發(fā)圖像ui控件和綁定事件
參考基于PyQt5的桌面圖像調試仿真平臺開發(fā)(3)黑電平處理_上天肖的博客-CSDN博客
②,算法開發(fā)實現
和銳化不同的是,這里支持檢測邊緣,不需要原圖像無邊緣的信息,所以進行梯度檢測后,直接將檢測后的結果顯示出來即可。
#圖像Sobel檢測
def proc_image_sobel_detect(image_rgb):
print("proc_image_sobel_detect,")
result = cv2.Sobel(image_rgb,cv2.CV_64F,0,1,ksize=5)
#sobel處理后數據為浮點數,需要轉為整數
result = np.around(result)
result = result.clip(0, 255).astype('uint8')
#cv2.imshow("sobel",result)
return result
#圖像Laplacian
def proc_image_laplacian_detect(image_rgb):
print("proc_image_laplacian_detect,")
result = cv2.Laplacian(image_rgb,cv2.CV_64F)
#需要轉為整數
result = np.around(result)
result = result.clip(0, 255).astype('uint8')
return result
#圖像Scharr
def proc_image_scharr_detect(image_rgb):
print("proc_image_scharr_detect,")
result = cv2.Scharr(image_rgb,cv2.CV_64F,0,1)
# 需要轉為整數
result = np.around(result)
result = result.clip(0, 255).astype('uint8')
print("result:", result.shape)
return result
#圖像Canny
def proc_image_canny_detect(image_rgb):
print("proc_image_canny_detect,")
result = cv2.Canny(image_rgb,100,200)
# 需要轉為整數
result = np.around(result)
result = result.clip(0, 255).astype('uint8')
#cv2.imshow("canny", result)
print("result:",result.shape)
#需要從灰度圖轉為全彩
result = cv2.cvtColor(result, cv2.COLOR_GRAY2RGB)
print("result:", result.shape)
return result
③,演示
導入原圖像
?
?點擊圖像邊緣,選擇算子,再點擊確定,即可在右邊顯示梯度算子處理后的圖像。
?
?下面是四種梯度算子處理后的圖像差異,不同算法的差異還和梯度算子參數有關。
?
?
?總結文章來源:http://www.zghlxwxcb.cn/news/detail-577350.html
圖像邊緣檢測原理就是求圖像梯度,梯度檢測原理就是離散函數求導。文章來源地址http://www.zghlxwxcb.cn/news/detail-577350.html
到了這里,關于基于PyQt5的桌面圖像調試仿真平臺開發(fā)(13)圖像邊緣顯示的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!