opencv 入门笔记五 padding(图像加边框)
1.傳統藝能了,上代碼:
cv.copyMakeBorder(src, top, bottom, left, right, borderType, dst=None, value=None)
? ? src:原圖像
? ? top,bottom,left,right:邊界寬度,單位:像素值(pixel)
? ? borderType:
? ? ? ? ?cv2.BORDER_CONSTANT, 帶顏色的邊界,需要傳入另外一個顏色值
? ? ? ? ?cv.BORDER_REFLECT, 邊緣元素的鏡像反射做為邊界
? ? ? ? ?cv2.BORDER_REFLECT_101/cv2.BORDER_DEFAULT
? ? ? ? ?cv.BORDER_REPLICATE, 邊緣元素的復制做為邊界
? ? ? ? ?cv.BORDER_WRAP
? ? dst: 輸出,畫布,尺寸為 (src.shape[1]+left+right, src.shape[0]+top+bottom)
? ? 返回圖像 dst 與原圖像 src 內存地址不一樣( 原圖像 src 并沒有被添加邊框 ),一般不用dst而? 用以下代碼產生新圖片
? ? value: borderType為cv2.BORDER_CONSTANT時,傳入的Q邊界顏色值,如[0,255,0]
2.當然了,可能有人會問圖像加框有什么用呢?
當然有用!
在神經網絡對圖片進行特征提取/訓練之前,一般要對圖片進行預處理,不同尺寸的圖片tensor大小不同,無法輸入同一個特定神經網絡進行訓練,這時對圖像進行縮放,padding,拼接就顯得尤為重要了。
#!/usr/bin/python3 # coding:utf-8import cv2 as cv# 讀取圖像 img = cv.imread("/home/newj/圖片/ima.jpeg") print(img.shape) # 顯示原圖 cv.imshow("test_window0", img)img1 = cv.copyMakeBorder(img, 100, 100, 100, 100, cv.BORDER_CONSTANT, value=[0, 255, 0]) img2 = cv.copyMakeBorder(img, 100, 100, 100, 100, cv.BORDER_REFLECT) img3 = cv.copyMakeBorder(img, 100, 100, 100, 100, cv.BORDER_REPLICATE) img4 = cv.copyMakeBorder(img, 100, 100, 100, 100, cv.BORDER_WRAP) cv.imshow("BORDER_CONSTANT", img1) cv.imshow("BORDER_REFLECT", img2) cv.imshow("BORDER_REPLICATE", img3) cv.imshow("BORDER_WRAP", img4)# 阻塞等待 key = cv.waitKey(0)# 輸入q,退出 if key == ord('q'):cv.destroyAllWindows()?3.一般情況下,加純色邊框就夠用了,但一些特殊場合還得用鏡像等方式!
?4.最后,每天進步一點點!
總結
以上是生活随笔為你收集整理的opencv 入门笔记五 padding(图像加边框)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么画动漫人物的头
- 下一篇: 吉林大学考研计算机科学与技术,2022年