opencv之為圖像添加邊界的方法示例
我們經(jīng)常會有對圖像邊緣做擴展的需求.比如
希望卷積后得到的矩陣大小不變希望改變圖像大小,但是不改變寬高比opencv實現(xiàn)
opencv中使用copyMakeBorder()來完成這一功能

- src是原圖像矩陣
- dst是新圖像矩陣
- top/bottom/left/right是邊界擴展的大小(比如5就代表5個像素)
- borderType
- value是擴充的像素填什么值
borderType分兩種:
BORDER_CONSTANT
邊緣填充用固定像素值,比如填充黑邊,就用0,白邊255
BORDER_REPLICATE
用原始圖像相應(yīng)的邊緣的像素去做填充,看起來有一種把圖像邊緣"拉糊了"的效果
opencv示例
import sys
import cv2 as cv
def test():
src = cv.imread("/home/sc/disk/keepgoing/opencv_test/lights.jpeg")
top = int(0.05 * src.shape[0]) # shape[0] = rows
bottom = top
left = int(0.04 * src.shape[1]) # shape[1] = cols
right = left
value = [0,0,0]
borderType = cv.BORDER_CONSTANT
dst1 = cv.copyMakeBorder(src, top, bottom, left, right, borderType, None, value)
borderType = cv.BORDER_REPLICATE
dst2 = cv.copyMakeBorder(src, top, bottom, left, right, borderType, None, value)
cv.imshow("blackborder",dst1)
cv.imshow("BORDER_REPLICATE",dst2)
if 27 == cv.waitKey():
cv.destroyAllWindows()
test()
效果如下:

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python打印n位數(shù)“水仙花數(shù)”(實例代碼)
這篇文章主要介紹了python打印n位數(shù)“水仙花數(shù)”,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-12-12
利用Python進(jìn)行時間序列數(shù)據(jù)分析與可視化的代碼示例
隨著時間序列數(shù)據(jù)在金融、氣象、生態(tài)等領(lǐng)域的廣泛應(yīng)用,利用Python進(jìn)行時間序列數(shù)據(jù)分析和可視化已成為重要的技能之一,本文將介紹如何使用Python進(jìn)行時間序列數(shù)據(jù)分析和可視化,并給出相應(yīng)的代碼示例,需要的朋友可以參考下2023-11-11
Python中cv2.Canny() 函數(shù)使用方法
cv2.Canny() 函數(shù)是 OpenCV 中的邊緣檢測函數(shù)之一,用于檢測圖像的邊緣,它的基本原理是通過計算圖像中每個像素點的梯度值來檢測邊緣,本文通過示例代碼介紹Python中cv2.Canny() 函數(shù)用法,需要的朋友參考下吧2023-07-07
Python執(zhí)行系統(tǒng)命令的五種方式小結(jié)
在日常開發(fā)中,有時需要在Python腳本中執(zhí)行系統(tǒng)命令,Python有五種方式來執(zhí)行系統(tǒng)命令(推薦使用第五種),本文為大家整理了這五種方法的具體使用,希望對大家有所幫助2024-01-01

