这是我第一次使用Qt,我必须使用Qt制作MSPaint.然而,我在绘制线条时遇到了麻烦.我现在可以通过点击屏幕上的某个位置并在其他地方释放来画线,但是当我画第二行时,前一行被删除.在绘制另一个项目时,如何保留以前绘制的项目?
void Canvas::paintEvent(QPaintEvent *pe){
QWidget::paintEvent(pe);
QPainter p(this);
p.drawPicture(0,0,pic);
}
void Canvas::mousePressEvent(QMouseEvent *mp){
start = mp->pos();
}
void Canvas::mouseReleaseEvent(QMouseEvent *mr){
end = mr->pos();
addline();
}
void Canvas::addline()Q_DECL_OVERRIDE{
QPainter p(&pic);
p.drawLine(start,end);
p.end();
this->update();
}
Run Code Online (Sandbox Code Playgroud)
Canvas是一个派生QWidget的类,它有2个QPoint属性的开始和结束.
班级机构:
class Canvas : public QWidget{
Q_OBJECT
private:
QPoint start;
QPoint end;
QPicture pic;
public:
Canvas(){paint = false;setAttribute(Qt::WA_StaticContents);}
void addline();
protected:
void paintEvent(QPaintEvent *);
void mousePressEvent( QMouseEvent * );
//void mouseMoveEvent( QMouseEvent * );
void mouseReleaseEvent( QMouseEvent * );
};
Run Code Online (Sandbox Code Playgroud) 我目前有一个boost.python类,用于从basler摄像机获取图像,将它们转换为opencv图像,并将它们作为numpy数组返回给python脚本。
我最初有以下有效的代码:
PyObject *capture()
{
PyObject * ret;
CGrabResultPtr ptrGrabResult;
CPylonImage pylonImage;
Mat image;
//timer t;
try
{
// Set timer to 0
//t.reset();
// get a pointer to pylon image
camera->RetrieveResult( 50000, ptrGrabResult, TimeoutHandling_ThrowException);
// Get dimensions of image
int imageWidthPixels = ptrGrabResult->GetWidth();
int imageHeightPixels = ptrGrabResult->GetHeight();
if (ptrGrabResult->GrabSucceeded())
{
// Convert Grab result from YUV422 to BGR8
formatConverter->Convert(pylonImage, ptrGrabResult);
// Convert pylon image to opencv image
image = Mat(imageHeightPixels, imageWidthPixels, CV_8UC3, (std::uint8_t *) pylonImage.GetBuffer());
// Convert opencv image …Run Code Online (Sandbox Code Playgroud) 我一直在尝试按照 NVIDIA 网站上的教程(https://docs.nvidia.com/deeplearning/frameworks/tf-trt-user-guide/index.html )将Tensorflow 2 中实现的 YOLOv3 模型转换为 Tensor RT #worflow-with-savedmodel)。
我使用 SavedModel 方法进行转换,并成功将原始模型转换为 FP16 并将结果保存为新的 SavedModel。当新的 SavedModel 在进行转换的同一进程中加载时,它会正确加载,并且我能够对图像运行推理,但是当我尝试将 FP16 保存的模型加载到新流程。当我尝试执行此操作时,出现以下错误:
2020-04-01 10:39:42.428094: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libnvinfer.so.6
2020-04-01 10:39:42.447415: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libnvinfer_plugin.so.6
Coco names not found, class labels will be empty
2020-04-01 10:39:53.892453: I tensorflow/stream_executor/platform/default/dso_loader.cc:44] Successfully opened dynamic library libcuda.so.1
2020-04-01 10:39:53.920870: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1555] Found device 0 with properties:
pciBusID: 0000:01:00.0 name: TITAN Xp computeCapability: 6.1
coreClock: 1.582GHz coreCount: 30 …Run Code Online (Sandbox Code Playgroud)