我刚刚开始使用pycharm,python和opencv,我正在尝试设置我的环境.我已经安装了所有必需的软件包,我就像这样导入opencv:
import cv2
Run Code Online (Sandbox Code Playgroud)
但是,这不会自动完成并显示警告,调用时该方法可能会丢失,但如果我这样导入:
import cv2.cv2
Run Code Online (Sandbox Code Playgroud)
自动完成确实有效,但运行会产生以下错误:
Traceback (most recent call last):
File "C:/Users/dunnj/PycharmProjects/TransformApps/transformapps/blackwhite.py", line 1, in <module>
import cv2.cv2 as cv2
AttributeError: 'module' object has no attribute 'cv2'
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏!
所以,我想做的基本上是过滤通过的所有内容System.out,System.err是否可以应用某种过滤器或创建我自己的过滤器OutputStream来转移System.out,然后正常处理它?
为了清楚起见进行编辑:为了澄清,我需要从其他程序中读取 System.out 的内容,并按照我认为合适的方式操作它,因此记录器并不是真正的选项,因为我无法控制其他程序将使用的内容。
为了更清楚地进行编辑:我正在为一个更大的程序创建一个插件,该程序需要读取从其他插件写入 System.out 的所有内容。因为它是一个基于插件的系统,所以我的插件运行的进程将始终与其他插件运行的进程相同。
我正在尝试创建一个简单的绘图程序,并且我希望/需要原点位于左下角,因此我使用以下自定义画布:
public class GraphingCanvas extends Canvas {
public GraphingCanvas() {
}
public void paint(Graphics g) {
((Graphics2D) g).translate(this.getWidth(), this.getHeight());
g.translate(10, 10);
g.setColor(Color.BLACK);
g.drawLine(0, 0, 10, 10);
}
}
Run Code Online (Sandbox Code Playgroud)
然而,当我使用这个画布时,就像这样:
private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 450, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
GraphingCanvas canvas = new GraphingCanvas();
canvas.setBackground(Color.WHITE);
canvas.setBounds(10, 10, 414, 241);
frame.getContentPane().add(canvas);
}
Run Code Online (Sandbox Code Playgroud)
原点似乎保持为默认值。难道我做错了什么?