python - 使用opencv python通过鼠标拖动来调整图像大小

标签 python opencv

我是python和计算机视觉编程的新手。尽管我正在尝试制作图像大小调整工具。为此,我正在使用python3.x和opencv2。
到目前为止,我现在可以通过以下代码来调整图像的大小,这只是一个示例。

my_img = cv2.imread('4.1.04.tiff')
resized_img = cv2.resize(my_img,None,fx=0.5, fy=0.5, interpolation = 
cv2.INTER_CUBIC)
cv2.imshow('Image',resized_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

好吧,我的问题是我不知道如何通过拖动鼠标来调整图像大小。
请让我知道是否可以在opencv中使用,并且可以使用python中的其他库来完成。谢谢!

最佳答案

我部分完成了用于调整图像大小的代码,但它无法正常工作,出现了一些主窗口大小问题。如果重新运行代码,您将得到它。我也看不到完整的窗口和跟踪器栏

import cv2
#import numpy as np

pro_img = None
a1 = 0.5 #for default size of image

def nothing(x):
    pass

def BnC_control(alpha):
    alpha = alpha/10
    #print(type(alpha))
    if alpha >= 0.1:
        return alpha
    else: 
        return 0.1


img = cv2.imread('watch.jpg')
#img = np.zeros((512,512,3),np.uint16)
cv2.namedWindow('Window1',cv2.WINDOW_AUTOSIZE)
cv2.createTrackbar('Alpha','Window1',1,10,nothing)



while(True):
    #r = BnC_control(a)
    #pro_img = cv2.resize(img,None,fx=0.3,fy=0.3)
    a = cv2.getTrackbarPos('Alpha','Window1')
    a1 = BnC_control(a)
    #print(a1)
    re_img = cv2.resize(img,None,fx=a1,fy=a1,interpolation = cv2.INTER_CUBIC)
    cv2.imshow('Window1',re_img)
    k = cv2.waitKey(1) & 0xFF
    if k == 27:
        break

cv2.destroyAllWindows()

另外,当我将插值更改为INTER_AREA时,它会出错..什么也没有发生,并且Trackerbar消失了。

关于python - 使用opencv python通过鼠标拖动来调整图像大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50306303/

相关文章:

python - 为什么openCV存储的文件比原始文件大(kB)?

python - 使用python插入到html文件中

python - 我将如何为每个小部件元素设置单独的颜色?

python - 拆分列并格式化列值

python - (python)在运行时生成和执行代码是否被认为是不好的做法?

Python:Groupby 第一个非 NaN 值

python - python中OpenCV的Flann匹配器索引

python - 使用 Get2D 在 OpenCV 中访问二维像素值时出现超出范围错误或返回值错误

linux - 在centos 6.3中安装OPENCV 2.4.4

c++ - 未在此范围内声明 OpenCV 符号