安卓系统也有很多类似的问题,但到目前为止,我还没有找到与Windows操作系统相关的资源。所以基本上,正如主题所暗示的,我想在我的相机预览上画一个矩形。已经做了一些工作,但我的程序中仍然存在一些问题。由于一些限制,我希望尽可能避免使用opencv。我的做法如下:
正如您在代码中所看到的,我实际上并没有在相机预览上绘图,而是在我的屏幕上绘图,相机预览在更低的一层上运行
下面是python代码:
import win32gui, win32ui, win32api, win32con
from win32api import GetSystemMetrics
dc = win32gui.GetDC(0)
dcObj = win32ui.CreateDCFromHandle(dc)
hwnd = win32gui.WindowFromPoint((0,0))
monitor = (0, 0, GetSystemMetrics(0), GetSystemMetrics(1))
red = win32api.RGB(255, 0, 0) # Red
past_coordinates = monitor
rec_x = 200 # width of rectangle
rec_y = 100 # height of rectangle
m = (100, 100) # initialize start coordinate
def is_mouse_down():
key_code = win32con.VK_LBUTTON
state = win32api.GetAsyncKeyState(key_code)
return state != 0
while True:
if(is_mouse_down() == True):
m = win32gui.GetCursorPos()
for x in range(rec_x):
win32gui.SetPixel(dc, m[0]+x, m[1], red)
win32gui.SetPixel(dc, m[0]+x, m[1]+rec_y, red)
for y in range(rec_y):
win32gui.SetPixel(dc, m[0], m[1]+y, red)
win32gui.SetPixel(dc, m[0]+rec_x, m[1]+y, red)
因此,我能够画一个红色的矩形。但是,由于屏幕不断刷新,我的矩形的两条水平线(参见下面的gif)显示为从左到右的连续点。我找不到或想不出一个方法来改进这一点,同时保持每个ckick移动矩形的可能性
请忽略白色矩形。当你点击预览中的任意位置时,它是相机应用程序的内置功能
以下是我用于完成此步骤的参考资料:
目前没有回答
相关问题 更多 >
编程相关推荐