python - 使用opencv python通过鼠标拖动调整图像大小
问题描述
我是 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 时,它会出错..没有任何反应,并且跟踪栏消失了。
推荐阅读
- scala - 有没有办法在scala中实现分层枚举?
- python - [错误]libpng 警告:使用 OpenCV 和 Python 在 ihdr 中的图像宽度为零
- java - Espresso 在 Recyclerview 项目中执行点击查看
- node.js - AWS Lambda - 控制应用程序流程
- android-fragments - 无法解析 androidx.fragment:fragment-testing 的依赖关系
- php - 如何在laravel中检查用户输入
- react-native - 如何将数组传递给按钮单击反应原生的函数以及如何在存储到数组之前更改图像名称?
- c - Unshuffled 的字符串在 shuffle 和 unshuffle 后与原始字符串不同
- arrays - 如何从 json 中获取键值对,如下所示:-
- python - 找到一个numpy数组的N个最大索引,其对应值应该大于另一个数组中的M