opencv之為圖像添加邊界的方法示例
我們經(jīng)常會有對圖像邊緣做擴(kuò)展的需求.比如
希望卷積后得到的矩陣大小不變希望改變圖像大小,但是不改變寬高比opencv實現(xiàn)
opencv中使用copyMakeBorder()來完成這一功能
- src是原圖像矩陣
- dst是新圖像矩陣
- top/bottom/left/right是邊界擴(kuò)展的大小(比如5就代表5個像素)
- borderType
- value是擴(kuò)充的像素填什么值
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)文章
關(guān)于PySnooper 永遠(yuǎn)不要使用print進(jìn)行調(diào)試的問題
這篇文章主要介紹了關(guān)于PySnooper 永遠(yuǎn)不要使用print進(jìn)行調(diào)試的問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03python numpy函數(shù)中的linspace創(chuàng)建等差數(shù)列詳解
numpy.linspace是用于創(chuàng)建一個一維數(shù)組,并且是等差數(shù)列構(gòu)成的一維數(shù)組,下面這篇文章主要給大家介紹了關(guān)于python numpy函數(shù)中的linspace創(chuàng)建等差數(shù)列的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。2017-10-10