小编ara*_*nga的帖子

从旋转矩阵和OpenCV中的平移向量获取旋转轴

我有两个带有一定旋转角度的棋盘.让我们参考第一张图像找到第二张图像的旋转角度.

为此,我找到了这些对象的旋转矩阵(3x3)和平移矩阵(3x1).

如何使用这些矩阵找到对象的旋转角度旋转轴

opengl opencv rotation image-rotation

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

如何使用cv :: findcontours和层次结构查找内孔的数量

我需要在下面的图像中找到内孔的数量.我的最终要求是使用opencv中的轮廓层次来检测和找到圆形黑洞的区域.不需要使用任何其他算法.

基于此链接在OpenCV中使用findContours()中的层次结构?我试过但它不起作用.

有没有其他方法可以找到图像中没有孔?

在这里,我已经附加了样本图像和代码.任何人都可以使用层次结构单独找到内部黑洞.我对轮廓层次结构没有太多经验.谢谢.我使用opencv c ++ lib.

<code>在此处输入图像说明</ code>

cv::Mat InputImage = imread("New Image.jpg");
int Err;

if(InputImage.empty() == 1)
{
    InputImage.release();
    cout<<"Error:Input Image Not Loaded"<<endl;
    return 1;
}
cv::Mat greenTargetImage;

std::vector<cv::Mat> Planes;
cv::split(InputImage,Planes);

greenTargetImage = Planes[1];
cv::Mat thresholdImage = cv::Mat (greenTargetImage.size(),greenTargetImage.type());
cv::threshold(greenTargetImage,thresholdImage,128,255,THRESH_OTSU);
imwrite("thresholdImage.jpg",thresholdImage);

std::vector<std::vector<cv::Point>> contours;
std::vector<cv::Vec4i> hierarchy;
cv::findContours(thresholdImage,contours,hierarchy,cv::RETR_CCOMP,cv::CHAIN_APPROX_SIMPLE,cv::Point(-1,-1));
cout<<contours.size()<<endl;
cout<<hierarchy.size()<<endl;
int count = 0;
if (!contours.empty() && !hierarchy.empty())
{
    for (int i = 0;i<contours.size();i++ )
    {
        if ( hierarchy[i][3] != -1)
        {
            cv::drawContours(InputImage,contours,i,CV_RGB(0,255,0),3);
            count = count+1;
        }
    } …
Run Code Online (Sandbox Code Playgroud)

c++ opencv image-processing

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

是opencv中的任何函数,相当于matlab conv2

matlab函数conv2有没有直接的opencv函数?我尝试使用cvFilter2D(),但它似乎给我不同于conv2()的结果.

例如:

CvMat * Aa = cvCreateMat(2, 2, CV_32FC1);
CvMat * Bb = cvCreateMat(2, 2, CV_32FC1);
CvMat * Cc = cvCreateMat(2, 2, CV_32FC1);
cvSetReal2D(Aa, 0, 0, 1);
cvSetReal2D(Aa, 0, 1, 2);
cvSetReal2D(Aa, 1, 0, 3);
cvSetReal2D(Aa, 1, 1, 4);
cvSetReal2D(Bb, 0, 0, 5);
cvSetReal2D(Bb, 0, 1, 5);
cvSetReal2D(Bb, 1, 0, 5);
cvSetReal2D(Bb, 1, 1, 5);
cvFilter2D(Aa, Cc, Bb);

This produces the matrix [20 30; 40 50]


In MATLAB:
>> A=[1 2; 3 4]
A =
1 2
3 4

>> …
Run Code Online (Sandbox Code Playgroud)

matlab opencv image-processing convolution

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