तो, मेरे पास यह कोड है, मैं ओपनसीवी फ्रेम में आसानी से एक टेक्स्ट या कोई आकार जोड़ सकता हूं। लेकिन किसी फ्रेम पर इमेज इंसर्ट करना बहुत मुश्किल होता है। मैं एक वीडियोकैप्चर फ्रेम पर एक छोटी छवि डालना चाहता हूं, मान लें कि छवि को सम्मिलित करने के लिए 50x50 पिक्सेल है। इस पर कोई विचार?

import cv2
webcam = cv2.VideoCapture(0)
insertImage = "sample.jpg" # size 50x50 
while True:
    rval = False
    while(not rval):
        (rval, frame) = webcam.read()
        if(not rval):
            print("Failed to open webcam. Trying again...")
    cv2.putText(frame, " image here ", (0,70),cv2.FONT_HERSHEY_SIMPLEX, 0.6, (255,0,0), 2)
    cv2.imshow('with image', frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
            break
webcam.release()
cv2.destroyAllWindows()
0
max 2p 3 पद 2020, 11:49

1 उत्तर

सबसे बढ़िया उत्तर

ओपनसीवी छवियां numpy arrays हैं। जहाँ तक मुझे पता है, OpenCv ऐसे कार्य प्रदान नहीं करता है जिनके साथ आप जो चाहें प्राप्त कर सकते हैं। परिणाम सरणियों में हेरफेर करके प्राप्त किया जा सकता है।

import cv2
import numpy as np
if __name__ == '__main__':

    bigImage = cv2.imread("image1.png") #I don't have a webcam connected, so it's your frame
    smallImage = cv2.imread("image2.png") #50x50 for you
    height, width, channels = smallImage.shape
    offset = np.array((40, 50)) #top-left point from which to insert the smallest image. height first, from the top of the window
    bigImage[offset[0]:offset[0] + height, offset[1]:offset[1] + width] = smallImage
    cv2.imshow("test", bigImage)
    cv2.waitKey(0)

इनपुट

  • बिगइमेज = बड़ा ग्रे आयत। यह आपका फ्रेम है
  • छोटा चित्र = छोटा हरा आयत। यह आपकी 50x50 छवि है

आउटपुट यहां छवि विवरण दर्ज करें

2
Wippo 3 पद 2020, 12:28