小编Kar*_*gan的帖子

将Mat对象的类型从CV_32F更改为CV_8U

我尝试使用imshow函数显示CV_32F类型的图像,但它表现出了白图像.它在文档中给出了浮点图像将被映射到0-255并显示但它只显示了一个白色图像.我试图将它转换为CV_8U使用

Mat A = Mat :: ones(300,300,CV_32FC1)*1000;

做一些处理 - 将浮点值赋给A中的像素

......

Mat B;

A.convertTo(B,CV_8U)

当我看到'B'我得到黑白图像时,没有灰色阴影.A中的浮点值像素是否正确映射到0-255?我做错了吗?

A中的几个值在初始化时为1000,而休息是在处理期间分配的一些浮点数.

floating-point opencv mat

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

基本,基本和同构矩阵之间的区别

我有两张图片来自不同的位置.第二个摄像头位于右侧,相对于第一个摄像头向上和向后.所以我认为两个视图之间存在透视变换而不仅仅是仿射变换,因为摄像机处于相对不同的深度(我是对的吗?)我在两个图像之间有一些对应的点.我想使用这些对应点来确定每个像素从第1个到第2个图像的变换.

我对函数findFundamentalMatfindHomography感到困惑.... 两者都返回3x3矩阵,两者有什么区别?

是否有任何条件/使用它们的先决条件(何时使用它们)?

哪一个用于将点从第一图像转换为第二图像?在函数返回的3x3矩阵中,它们是否包括两个图像帧之间的旋转和平移?

维基百科,我们发现基本矩阵是相应图像点之间的关系.在苏答案在这里,它是说本质矩阵E被需要得到相应的点...但我没有照相机内部矩阵计算è.....我只是有两个图像.

我该如何确定相应的点?等待建议..谢谢

opencv transform homography perspectivecamera projective-geometry

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

如何将Float Mat写入OpenCV中的文件

我有一个矩阵

Mat B(480,640,CV_32FC1);

包含浮动值.我想将这个矩阵写入一个文件,该文件可以在记事本或Ms word或Excel中打开,以查看内部和存储的值.... imwrite函数只能保存8位或16位图像..

如果可以的话,请提出您的建议?如果有,怎么样?

c++ floating-point file-io opencv mat

30
推荐指数
3
解决办法
5万
查看次数

如何在ubuntu 12.04中安装OpenCV

我已经OpenCV2.4.2在我的计算机中安装了ROS(Fuerte)的一部分(从Ubuntu软件中心安装,因为ROS).我应该如何将OpenCV作为独立安装?

我浏览了本指南并从这里下载了opencv软件包.我不清楚如何继续.任何人都可以提供安装的简短步骤列表吗?我想为我的项目使用IDE,那么哪个IDE适合C++以及如何安装正确的IDE并正确配置它?

另外如何检查是否安装了某些工具?

installation opencv ros ubuntu-12.04

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

使用鼠标回调打印坐标和像素值

这是我尝试的代码,只打印坐标值而不是像素值.

#include <iostream>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>

void onMouse( int event, int x, int y, int, void* );
using namespace cv;

Mat img = cv::imread("b.jpg", 0); // force grayscale
Mat thresh=Mat::zeros(img.size(),CV_8UC1);

int main(int argc, char **argv)
{

    if(!img.data) {
        std::cout << "File not found" << std::endl;
        return -1;
    }

   threshold(img,binary,50,255,THRESH_TOZERO);  

   namedWindow("thresh");
   setMouseCallback( "thresh", onMouse, 0 );

   imshow("thresh",thresh);
}

void onMouse( int event, int x, int y, int, void* )
{
    if( event != CV_EVENT_LBUTTONDOWN )
            return;

    Point pt = …
Run Code Online (Sandbox Code Playgroud)

opencv cout mouseevent mat

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