2017-10-17 15 views
0

Je suis confronté à un problème de baisse de performance. J'ai fait quelques recherches et il semble que la fonction de remappage prend trop de temps. La taille de l'image est VGA, mais la zone intéressante a environ environ 1/4 de cette zone. Par conséquent, je veux utiliser remap() seulement pour cette région et finalement obtenir l'image avec environ 1/4 de la zone VGA.Comment faire une refonte d'une zone particulière dans OpenCV

Ceci est entrée d'image en résolution VGA -green rect est trackableArea Rect

sortie souhaitée mais en VGA

généré par:

remap(originalCornersSamples[i], rview, map1, map2, INTER_NEAREST); 

Quand J'essaie de faire remap que sur le secteur spécifique:

remap(frame_bgr, rview, map1(trackableArea), map2(trackableArea), INTER_NEAREST); 

je suis arrivé comme prévu - l'image désirée étirée avec une résolution souhaitée du rect trackableArea. Map12 et map2 ont été générées à partir de getPerspectiveTransform pour obtenir uniquement l'écran de télévision à partir de l'image d'entrée. Le trackableArea est un Rect comme ici (lignes vertes):

Des idées pour rendre cela possible ou comment le remap() devrait ressembler?

+0

Et pourquoi tag qt? – AlexanderVX

+0

J'utilise qt framework, donc les méthodes qt et opencv peuvent aussi être utilisées. – RobertLT

Répondre

0

je réponds à moi-même :) Donc cela a aidé:

resize(map1,modified,Size(trackableArea.width,trackableArea.height), 0, 0, INTER_CUBIC); 

remap(frame_bgr, rview, modified, map2(trackableArea), INTER_NEAREST);