opencv如何通过trackbar使图像缩放?

2024-04-27 04:48:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我搜索了一会儿,但只发现这个Answer相似。所以我在这里提出一个问题。我想按轨迹条缩放图像,我的代码如下所示:

import cv2
import numpy as np

img = cv2.imread('../data/logo.png')

cv2.namedWindow('scaleFactor')
cv2.namedWindow('image')

def nothing(x):
    print 'x--->', x

cv2.createTrackbar('scale','scaleFactor', 0 , 5, nothing)


while(1):
    rows, cols = img.shape[:2]
    cv2.imshow('image', img)
    scaleFactor = cv2.getTrackbarPos('scale','scaleFactor') or 1
    scaleFactor = scaleFactor if scaleFactor > 0 else 1
    img = cv2.resize(img, (int(rows * scaleFactor), int(cols * scaleFactor)), interpolation=cv2.INTER_LINEAR)


    k =cv2.waitKey(10)
    if k == 27:
        break
    print 'scaleFactor -->', scaleFactor

cv2.destroyAllWindows()

简单地告诉我一个很长的错误信息:

^{pr2}$

以前有人遇到过这个错误吗?在


Tags: answerimageimportimgif轨迹cv2rows
1条回答
网友
1楼 · 发布于 2024-04-27 04:48:19

待办事项:

将您的代码改为:

rows, cols = img.shape[:2]
while(1):
    #rows, cols = img.shape[:2]
    pass 

原因:

我发现您将rows, cols = img.shape[:2]放在while循环中。在

这不是您想要做的:It will scale by the scalefactor in every loop(not every time you change the trackbar value).。在

^{pr2}$

相关问题 更多 >