小编Sim*_*ing的帖子

将Python Opencv Image(numpy数组)转换为PyQt QPixmap图像

我想将python opencv图像转换为QPixmap.

我按照指示显示页面链接,我的代码附在下面

img = cv2.imread('test.png')[:,:,::1]/255. 
imgDown = cv2.pyrDown(img)
imgDown = np.float32(imgDown)        
cvRGBImg = cv2.cvtColor(imgDown, cv2.cv.CV_BGR2RGB)
qimg = QtGui.QImage(cvRGBImg.data,cvRGBImg.shape[1], cvRGBImg.shape[0], QtGui.QImage.Format_RGB888)
pixmap01 = QtGui.QPixmap.fromImage(qimg)
self.image01TopTxt = QtGui.QLabel('window',self)
self.imageLable01 = QtGui.QLabel(self)
self.imageLable01.setPixmap(pixmap01)
Run Code Online (Sandbox Code Playgroud)

代码没有编译和运行时错误,但转换错误,我只是得到一些噪声图像.我不确定问题是什么.有人可以帮忙吗?

python qt opencv qimage

9
推荐指数
4
解决办法
2万
查看次数

在OpenCV 3.0中使用findEssentialMat函数

我目前正在开展一个项目,通过使用SIFT/SURF从两个图像恢复相机6-DOF-Pose.在OpenCV的旧版本中,我使用findFundamentalMat来查找基本矩阵,然后通过已知的相机内部K进一步得到基本矩阵,并最终通过矩阵分解得到R和t.结果非常敏感和不稳定.

我看到有些人在这里有同样的问题 OpenCV findFundamentalMat非常不稳定和敏感

有人建议应用Nister的5点算法,该算法已在最新版本的OpenCV3.0中实现.

我已经阅读了OpenCV文档中的示例

在示例中,它使用focal = 1.0Point2d pp(0.0, 0.0).这是相机的真实焦距和原理点吗?单位是什么?在像素?还是实际尺寸?我无法理解这两个参数.我认为这两个参数应该从校准程序中获取,对吗?

对于我目前的相机(VGA模式),我使用Matlab Camera Calibrator来获取这两个参数,这些参数都是

Focal length (millimeters):   [  1104    1102]

Principal point (pixels):[  259      262]
Run Code Online (Sandbox Code Playgroud)

所以,如果我想使用我的相机参数,我是否需要直接填写这些值?或者将它们转换为实际尺寸,如毫米?

此外,我得到的翻译结果看起来像一个方向而不是实际大小,有什么方法可以得到实际的大小翻译而不是方向?

任何帮助表示赞赏.

c++ opencv computer-vision matlab-cvst

6
推荐指数
1
解决办法
5605
查看次数

如何使用黑森州矩阵查找山脊

我想查找给定图像的山脊。(边缘没有边缘!)示例如下图所示 在此处输入图片说明

我认为Hessian矩阵会直观地工作。因此,我从2D-高斯方程开始对Hessian矩阵内核进行了硬编码,如下所述。 如何构建2D粗麻布矩阵内核

我使用surf可视化的方法创建了3个二阶导数内核(D_xx,D_yy和D_xy),它们看上去都是正确的。在此处输入图片说明

然后,我应用了这些内核并对图像进行了2D卷积。

我不确定下一步该怎么做,是否需要使用D_xx,D_yy和D_xy来表示特征值和向量?我们如何通过对每个像素进行2×2矩阵的特征分析来从图像中提取出棱线?任何想法,公式甚至代码都将大有帮助。

附带的代码生成二维Hessian矩阵

[x y]=meshgrid(round(-N/2):round(N/2), round(-N/2):round(N/2));
common = x.^2+y.^2;
Lxx = ((-1+x.^2/(sigma^2)).*exp(-common/(2*sigma^2))) / (2*pi*sigma^4);
Lxx = Lxx./ sum(Lxx(:));

Lyy = ((-1+y.^2/(sigma^2)).*exp(-common/(2*sigma^2))) / (2*pi*sigma^4);
Lyy = Lyy./ sum(Lyy(:));

Lxy = ((x.*y)/(2*pi*sigma^6)).*exp(-common/(2*sigma^2));
Lxy = Lxy./ sum(Lxy(:));
Run Code Online (Sandbox Code Playgroud)

matlab convolution hessian-matrix

5
推荐指数
0
解决办法
3911
查看次数

在 Matlab 中,如何划分多元高斯分布以分离高斯分布?

我在直方图中有一个具有多元高斯分布的图像。我想将图像分割为两个区域,以便它们都可以遵循正态分布,如直方图中显示的红色和蓝色曲线。我知道高斯混合模型可能适用于此。我尝试使用 fitgmdist 函数,然后将两部分聚类,但仍然无法正常工作。任何建议将不胜感激。 在此处输入图片说明在此处输入图片说明 在此处输入图片说明 在此处输入图片说明

下面是我的方法的 Matlab 代码。

% Read Image
I = imread('demo.png');
I = rgb2gray(I);
data = I(:);

% Fit a gaussian mixture model
obj = fitgmdist(data,2);
idx = cluster(obj,data);
cluster1 = data(idx == 1,:);
cluster2 = data(idx == 2,:);

% Display Histogram
histogram(cluster1)
histogram(cluster2)
Run Code Online (Sandbox Code Playgroud)

matlab image-processing gaussian

5
推荐指数
1
解决办法
2605
查看次数

Python 版本 opencv 中的 Rodrigues 函数不起作用

我想使用python版本的opencv函数Rodrigues()将旋转矩阵转换为旋转向量。要转换的 rotMat 为

 [[ 0.59966056 -0.59966056  0.52991926]
 [ 0.70710678  0.70710678  0.        ]
 [-0.37470951  0.37470951  0.8480481 ]]
Run Code Online (Sandbox Code Playgroud)

我写的代码是这样的

rotVec = np.zeros((1, 3), np.float32)
cv2.Rodrigues(rotMat, rotVec)
Run Code Online (Sandbox Code Playgroud)

其遵循文档如下 在此输入图像描述 但结果发现结果全是0,函数不起作用。我对 python 很陌生,如果有人能指出错误,我将不胜感激。

python opencv rotation

2
推荐指数
1
解决办法
1万
查看次数