У меня проблема с получением результата сопоставления шаблона Opencv с Contours на Jetson Nano En715. Приведенный ниже код отлично работает в системе ПК (Windows и Linux) без каких-либо задержек или задержек, но когда я запускаю его на jetson nano En715 с USB-камера c270 Logitech (эта камера такая же, как камера, которую я использую на ПК) Я не могу сопоставить шаблон. Никаких ошибок, просто шаблон и изображение не совпадают.
Кто-нибудь может мне помочь, в чем проблема? может быть, из моего кода, или, может быть, jetson nano En715 настолько слаб для этого и имеет задержку, спасибо, ребята
import cv2
import numpy as np
import matplotlib.pyplot as plt
from math import copysign, log10
MatchImage = False
vc = cv2.VideoCapture(0)
template = cv2.imread('template.jpg')
template_img = template
plt.axis('off')
plt.imshow(template)
plt.title('OUR TEMPLATE')
plt.show()
template = cv2.cvtColor(template,cv2.COLOR_BGR2GRAY)
_, target = vc.read()
img_copy=target.copy()
target_gray = cv2.cvtColor(target,cv2.COLOR_BGR2GRAY)
plt.axis('off')
plt.imshow(target)
plt.title('OUR TARGET')
plt.show()
ret,thresh1 = cv2.threshold(template,127,255,0)
ret,thresh2 = cv2.threshold(target_gray,127,255,0)
contours,hierarchy = cv2.findContours(thresh1,cv2.RETR_CCOMP, cv2.CHAIN_APPROX_NONE)
if hierarchy[0][0][3] == -1 :
cv2.drawContours(template_img,contours,-1,(0,255,0),3)
else:
cv2.drawContours(template_img,contours,-1,(0,0,255),3)
plt.axis('off')
plt.imshow(template_img)
plt.title('Identifying the Contours')
plt.show()
sorted_contours = sorted(contours, key=cv2.contourArea, reverse=True)
template_contour = contours[1]
contours,hierarchy = cv2.findContours(thresh2,cv2.RETR_CCOMP,cv2.CHAIN_APPROX_SIMPLE)
for c in contours:
match = cv2.matchShapes(template_contour,c,3,0.0)
print(match)
if match < 0.15:
closest_contour = c
area = cv2.contourArea(c)
printtext = 'data print: ' + str(area)
print (printtext)
if (match < 0.01):
cv2.drawContours(target,[closest_contour],-1,(255,0,0),3)
c = max([closest_contour], key = cv2.contourArea)
x,y,w,h = cv2.boundingRect(c)
cv2.rectangle(target, (x,y), (x+w,y+h), (0,255,0), 5)
print ("Match")
MatchImage = True
plt.title("Original Image with a bounding box")
plt.imshow(target)
plt.show()
if MatchImage == False:
print("not match")
plt.title("Original Image with a bounding box")
plt.imshow(target)
plt.show()
if MatchImage == True:
plt.title("Original Image with a bounding box")
plt.imshow(target)
plt.show()
Подробнее здесь: https://stackoverflow.com/questions/790 ... etson-nano
Соответствие шаблона Python3 Opencv с контурами на jetson nano ⇐ Linux
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Jetson Nano, может использовать CUDA в терминале Python3, но не в файле
Anonymous » » в форуме Python - 0 Ответы
- 3 Просмотры
-
Последнее сообщение Anonymous
-