我有一個非常快速和骯髒的解決方案。您可以對其進行優化以滿足您的需求。我旁邊的代碼的解釋,以及:
import cv2
import numpy as np
img1 = cv2.imread('lena.jpg')
#--- Here I am creating the border---
black = [0,0,0] #---Color of the border---
constant=cv2.copyMakeBorder(img1,10,10,10,10,cv2.BORDER_CONSTANT,value=black)
cv2.imshow('constant',constant)
你可以找到許多其它選項不同的邊框ON THIS PAGE
#--- Here I created a violet background to include the text ---
violet= np.zeros((100, constant.shape[1], 3), np.uint8)
violet[:] = (255, 0, 180)
#--- I then concatenated it vertically to the image with the border ---
vcat = cv2.vconcat((violet, constant))
cv2.imshow('vcat', vcat)
#--- Now I included some text ---
font = cv2.FONT_HERSHEY_SIMPLEX
cv2.putText(vcat,'FRAME',(30,50), font, 2,(0,0,0), 3, 0)
cv2.imshow('Text', vcat)
#--- I finally concatenated both the above images horizontally---
final_img = cv2.hconcat((vcat, vcat))
cv2.imshow('Final', final_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
希望這個答案幫助。您可以修改它以適應您的要求。 –
一個小的評論。爲什麼不增加邊界的大小,例如'constant = cv2.copyMakeBorder(img1,100,10,10,10,cv2.BORDER_CONSTANT,value = black)'。這樣紫羅蘭色的矩形就不再需要了。我不尋找任何幻想,但爲快速和簡單:) – Roxanne
正如我所說,你可以隨時修改它。您也可以調整文字的位置。 :D –