我正在使用OpenCV库的程序工作(尽管我对它很不喜欢)。我需要做的一件事是绘制图像。我查看了OpenCV绘图函数,它们看起来都非常简单(圆形,线形等),但程序不会编译!它说这是确切的:错误C3861:'行':标识符未找到。 有没有我没有安装的东西?我使用http://opencv.willowgarage.com/wiki/VisualC%2B%2B_VS2008上的教程在Visual Studio 2008上安装OpenCV,到目前为止,这是我唯一真正的问题。 请帮帮我!我需要这个程序尽快工作!OpenCV:在图像上绘图
3
A
回答
4
在OpenCV C API中绘制一条线的函数名为cvLine
,而不是Line
。
1
我想你已经下降了以下常见的错误的牺牲品: C包括在#include <opencv/core.h>
等,而 C++包括有:
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <oppencv2/highgui/highgui.hpp>
包括那些用于绘图和显示图像。使用using namespace cv;
然后 你不必写cv::line
只是line
和一切都会工作正常。
我开始时不得不面对同样的问题。 ;)
(顺便说一句和使用cv::Mat
对C++)
0
现在,您可以轻松地在OpenCV的图像绘制。为此,您需要在opencv上调用setMouseCallback(‘window_name’,image_name)
函数。之后,您可以轻松处理图像上的鼠标回调功能。然后您需要检测cv2.EVENT_LBUTTONDOWN, cv2.EVENT_MOUSEMOVE and cv2.EVENT_LBUTTONUP
事件。通过检查适当的布尔条件,您需要决定如何与OpenCV图像进行交互。
def paint_draw(event,former_x,former_y,flags,param):
global current_former_x,current_former_y,drawing, mode
if event==cv2.EVENT_LBUTTONDOWN:
drawing=True
current_former_x,current_former_y=former_x,former_y
elif event==cv2.EVENT_MOUSEMOVE:
if drawing==True:
if mode==True:
cv2.line(image,(current_former_x,current_former_y),(former_x,former_y),(0,0,255),5)
current_former_x = former_x
current_former_y = former_y
elif event==cv2.EVENT_LBUTTONUP:
drawing=False
if mode==True:
cv2.line(image,(current_former_x,current_former_y),(former_x,former_y),(0,0,255),5)
current_former_x = former_x
current_former_y = former_y
return former_x,former_y
因为你可以看到链接的详细信息:How to Paint on OpenCV Images and Save the Image
输出:
相关问题
- 1. 上绘制图像的OpenCV
- 2. opencv在另一个图像上绘制透明图像
- 3. Processing.js - 在图像上绘图
- 4. 在图像上绘图
- 5. 在Jframe图像上绘图
- 6. PlayN - 在图像上绘图
- 7. 对图像的绘图点opencv
- 8. 在绘图区域上绘制图像
- 9. OpenCV在网络摄像头上绘制图像
- 10. 如何在图像上绘制图像?
- 11. OpenCV中的绘图和绘图图形
- 12. 在图像视图上绘图android
- 13. 在OpenCV中绘制单个轮廓在图像上
- 14. 在图像上绘制
- 15. 在win32上绘制图像?
- 16. 在图像上绘制点
- 17. Android - 在图像上绘制
- 18. 在JButton上绘制图像?
- 19. 使用opencv在图像上绘制双面箭头python
- 20. 使用OpenCV在网络摄像机上绘图
- 21. 在OpenCV中的白色图像上绘制线
- 22. 的OpenCV - 绘制灰度图像
- 23. 在DrawingContext上绘图时在图像上绘制阴影
- 24. jfree图在图像上绘制阴谋
- 25. 在缓冲图像上绘图
- 26. 用Java/Spring/JSP在图像上绘图
- 27. 在图像库上绘图文本
- 28. 在位图图像上绘制文本
- 29. 用Matlab在图上绘制图像
- 30. 使用Raphael.js在图像上绘图
好吧......这是容易的。没有人在网站上说过--_ http://opencv.willowgarage.com/documentation/python/drawing_functions.html 非常感谢! – Juls 2010-08-25 11:46:00
@Juls您发布的链接是用于Python文档的,这就是为什么函数名称不同。 – 2010-08-25 12:12:56
+1准确。 Juls,不要忘了投票答复他的答案或接受它作为官方解决方案。 – karlphillip 2010-08-25 13:27:42