
我想用 cv::setMouseCallback("原图", onMouse, reinterpret_cast<void*> (img));//注册鼠标操作(回调)函数 这个函数读取picture view图片上的坐标和RGB颜色,用cv::imshow("原图",depth_PNG1);这个方式读取坐标没问题,但是我现在想把“原图”替换成我在qt ui上的picture view控件,这个我不会操作了,求大师指点

关注问题:在使用OpenCV时,您想要将"原图"替换为在Qt UI上的picture view控件,但不知道如何操作是吗?您希望得到什么样的指导和建议呢?
解决方案: 1. 将OpenCV的图片绘制到Qt UI上的picture view控件,可以使用QImage和QPixmap的相关方法来实现。
参考资料中的代码段落0已经提供了一个示例函数ShowImage来将OpenCV的Mat绘制到QGraphicsView控件上。您可以根据您的需要将其移植到Qt UI的picture view控件上。
首先,确保您已经在Qt项目中添加了OpenCV的依赖项,并在代码中包含了OpenCV的相关头文件。
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespace cv;
在参考资料的示例MainWindow类的构造函数中,已经演示了如何创建一个QGraphicsScene和QGraphicsView,并将图像添加到场景中显示。
// 创建一个QGraphicsScene
QGraphicsScene *scene = new QGraphicsScene;
// 将QGraphicsScene设置给QGraphicsView控件
ui->graphicsView->setScene(scene);
// 显示QGraphicsView控件
ui->graphicsView->show();
在参考资料的示例代码中,采用了如下方法将OpenCV的Mat转换为QImage,并设置给QGraphicsView控件。
// 加载并处理OpenCV的图片
Mat srcImage = imread("D:\\codeSpace\\test.jpg");
int width = srcImage.cols;
int height = srcImage.rows;
cvtColor(srcImage, srcImage, COLOR_BGR2RGB);
// 将Mat转换为QImage
QImage disImage = QImage(srcImage.data, width, height, QImage::Format_RGB888);
// 将QImage设置给QGraphicsView控件
scene->addPixmap(QPixmap::fromImage(disImage));
综合以上步骤,可以将参考资料中的示例代码移植到您的项目中,并将OpenCV的图片显示在Qt UI上的picture view控件中。请确保路径和文件名正确,并根据实际需求进行适当修改。
如果遇到了其他问题或需要更详细的指导和建议,请提供更具体的信息。