标签: opencv-mat

Matrix OpenCV的大小

我知道这可能非常简陋,但我是OpenCV的新手.你能告诉我如何在OpenCV中获得矩阵的大小吗?我用谷歌搜索,我仍在搜索,但如果你们中的任何人都知道答案,请帮助我.

行数和列数的大小.

有没有办法直接获得2D矩阵的最大值?

opencv opencv-mat

118
推荐指数
4
解决办法
20万
查看次数

如何在OpenCV中找到Mat对象的类型是Mat :: type()

我对OpenCV中type()Mat对象方法感到困惑.
如果我有以下行:

mat = imread("C:\someimage.jpg");
type = mat.type();
Run Code Online (Sandbox Code Playgroud)

type = 16.如何找出垫阵的类型?
我试图在其手册或几本书中找到答案是徒劳的.

opencv opencv-mat

106
推荐指数
7
解决办法
12万
查看次数

如何在OpenCV中裁剪CvMat?

我有一个CvMat矩阵转换的图像说CVMat source.一旦我得到感兴趣的区域,source我希望算法的其余部分仅应用于感兴趣的区域.为此,我想我将不得不以某种方式裁剪source矩阵,我无法这样做.是否有方法或功能可以裁剪CvMat矩阵并返回另一个裁剪CvMat矩阵?谢谢.

opencv opencv-mat

51
推荐指数
4
解决办法
14万
查看次数

在OpenCV中连接Mat

我有几个Mat相同尺寸的物体中的图像我想创建一个bix cv::Mat对象来保存它们

所以新矩阵的维数是:widthNew = widthOld x矩阵数,高度保持不变.

我发现这样的副本可以使用:

void cvCopy(const CvArr* src, CvArr* dst, const CvArr* mask=NULL)
Run Code Online (Sandbox Code Playgroud)

但是,对于三个矩阵,如何将掩模定义为三个不同的时间?

此致,Moataz

opencv concatenation opencv-mat

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

OpenCv从连续数据数组创建3通道Mat

我想使用分配给其他位置的数据(每个通道的像素在一起)来创建OpenCV 3通道Mat,这不同于OpenCV Mat的数据,其中来自不同通道的数据是交错的。

Mat outputMat = Mat(dimY, dimX, CV_8UC3, rawData); 
// This works only if rawData interleaves channel data like an OpenCv Mat
Run Code Online (Sandbox Code Playgroud)

有没有一种方法可以创建OpenCV Mat,而不必采用以下从临时Mat分割通道并将正确的通道数据复制到相应位置的解决方案?

void createMat(unsigned char *rawData, unsigned int dimX, unsigned int dimY)
{
    Mat outputMat = Mat(dimY, dimX, CV_8UC3);

    // use outputMat to draw some stuff

    Mat channelR = Mat(dimY, dimX, CV_8UC1, rawData);
    Mat channelG = Mat(dimY, dimX, CV_8UC1, rawData + dimX * dimY);
    Mat channelB = Mat(dimY, dimX, CV_8UC1, rawData + 2 * dimX * dimY); …
Run Code Online (Sandbox Code Playgroud)

c++ opencv image-processing mat opencv-mat

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

cv :: Mat.refcount在OpenCV 3.0中丢失

以下适用于OpenCV 2.4.9:

cv::Mat TestMat(3,3,CV_32F);
int RefCount = *TestMat.refcount;
Run Code Online (Sandbox Code Playgroud)

如何在OpenCV 3.0.0b中完成同样的事情?

opencv opencv3.0 opencv-mat

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

如何在C++中完全释放cv :: Mat的内存

当我尝试创建一个cv :: Mat并在之后发布它(下面的代码)时,我仍然(根据valgrind)内存泄漏大约每个像素1个字节.

有谁知道如何正确释放cv :: Mat的记忆?

谢谢你的激情:)

码:

int main(int argc, char** argv)
{
  cv::Mat* matrx = new cv::Mat(1000,1000,CV_8UC1,0.);
  matrx->release();
  delete matrx;
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

Valgrind的:

[...]
==29420==    1,000,028 bytes in 1 blocks are definitely lost in loss record 372 of 372
==29420==    at 0x4C2AB80: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==29420==    by 0x5438877: cv::fastMalloc(unsigned long) (in /usr/lib/x86_64-linux-gnu/libopencv_core.so.2.4.8)
==29420==    by 0x536FE2A: cv::Mat::create(int, int const*, int) (in /usr/lib/x86_64-linux-gnu/libopencv_core.so.2.4.8)
==29420==    by 0x426FB5: cv::Mat::create(int, int, int) (mat.inl.hpp:663)
==29420==    by 0x426ECD: cv::Mat::Mat(int, int, int, cv::Scalar_<double> const&) (mat.inl.hpp:347) …
Run Code Online (Sandbox Code Playgroud)

c++ opencv memory-leaks opencv-mat

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

OpenCV 3.0 - 如何从CSV字符串创建cv :: Mat?

我正在尝试从我从python脚本管道的CSV字符串创建一个cv :: Mat.我目前正在使用python 2.7,C++和OpenCV 3.0,而我所能找到的是如何在OpenCV 2.4中完成它,但问题是它与3.0之间的区别很大,而不是以某种方式使用ml :: TrainData.我不明白它是如何工作的,并且没有示例代码!:-(

我的python脚本做的是它将np.array作为CSV管道,它看起来像这样:

import sys
import numpy as np
import csv


csvToSend = csv.writer(sys.stdout, delimiter=',')

data = np.array([ [3, 7, 9],
               [1, 7, 0],
               [4, 12, 8]])

csvToSend.writerows(data)
Run Code Online (Sandbox Code Playgroud)

python脚本目前正在模拟以bgr RAW格式发送图片的相机.

管道数据由我的C++代码接收,这就是代码当前的样子:

#include <iostream>
#include <string>
#include <opencv2/core/core.hpp>

using namespace std;
using namespace cv;

string values = "", csvPart;
Mat img;
int i;

int main()
{
    for (i = 0; i < 3; i++)
    {

        cin >> csvPart; //here I get my CSV lines from …
Run Code Online (Sandbox Code Playgroud)

c++ csv opencv opencv3.0 opencv-mat

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

如何使用C++实现OpenCV Mat的逗号分隔初始化程序?

#include <iostream>
#include <opencv2/opencv.hpp>

using namespace std;
using namespace cv;

int main() {
    Mat a = (Mat_<double>(3, 3) << 0, 1, 2, 3, 4, 5, 6, 7, 8);

    cout << a << endl;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

如何使用C++实现OpenCV Mat的逗号分隔初始化程序?

在"0"之后"1"如何进入垫子?

c++ opencv comma mat opencv-mat

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

C++ OpenCV 不在 mat 图像上绘制圆圈

我有使用 cv::Mat 显示的图像,并且我正在尝试用圆圈突出显示某些点

cv::namedWindow("image_window");
cv::Mat image = cv::imread(fileLoc);

cv::imshow("image_window", image);

/*for (unsigned int b = 0; b < points.size(); b++)*/
if (points[0].num_parts() != 0)
{
    for (unsigned int c = 0; c < points[0].num_parts(); c++)
    {
        dlib::point pp = points[0].part(c);
        cv::circle(image, cv::Point(pp.x()/2 , pp.y()/2 ), 3, cv::Scalar(0, 0, 0));
        std::stringstream ss;
        ss << (c);
        /*cout << c << endl;
        cout << pp << endl;*/
        cv::putText(image, ss.str(), cv::Point(pp.x() , pp.y() ), cv::FONT_HERSHEY_PLAIN, 0.8f, cv::Scalar(0x99, 0xFF, 0xFF));

    }
}/**/
Run Code Online (Sandbox Code Playgroud)

然而,除了相关图像之外,图像上不显示任何内容。我哪里出了问题以及如何修复?

c++ opencv opencv-mat

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

在OpenCV中将UIImage转换为cv :: Mat问题

我正在尝试将UIImage转换为cv :: Mat,因此我可以在其上使用LineIterator OpenCV类.我在这里使用opencv文档提供的代码,特别是在该页面上找到的cvMatGrayFromUIImage.我在我编写的函数中使用了这段代码,然后在swift文件中调用它.但是,当我尝试打印cv :: Mat图像时,数组中的数字不能准确反映输入图像的灰度.我将数组放入Matlab并调用imagesc函数来查看它是否确实是灰度.

这是我在OpenCVWrapper.mm中使用的代码

-(void) getPixelIntensity: (UIImage *)image
{

    //Transform UIImage to cv::Mat
    CGColorSpaceRef colorSpace = CGImageGetColorSpace(image.CGImage);
    CGFloat cols = image.size.width;
    CGFloat rows = image.size.height;
    cv::Mat cvMat(rows, cols, CV_8UC1); // 8 bits per component, 1 channels
    CGContextRef contextRef = CGBitmapContextCreate(cvMat.data,                 // Pointer to data
                                                    cols,                       // Width of bitmap
                                                    rows,                       // Height of bitmap
                                                    8,                          // Bits per component
                                                    cvMat.step[0],              // Bytes per row
                                                    colorSpace,                 // Colorspace
                                                    kCGImageAlphaNoneSkipLast |


    kCGBitmapByteOrderDefault); // Bitmap info flags
        CGContextDrawImage(contextRef, CGRectMake(0, 0, …
Run Code Online (Sandbox Code Playgroud)

opencv uiimage ios swift opencv-mat

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

如何在OpenCV 3.0中将Mat转换为cvMat

如何将OpenCV Mat对象转换为cvMat对象?

根据此OpenCV互操作性文档(1),应该可以进行此转换.但是在声明时cvMat,编译器在行下面给出了以下错误消息cvMat deprecatedImg

:错误:<expected';' 在'deprecatedImg'>之前,

如何解决这个问题?

opencv3.0 opencv-mat

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

OpenCV Mat to Qt QString

我在Qt应用程序中使用opencv.我已经看到了一些通用的c ++方法来打印Mat的值,并且已经这样做了

cout << "myMat = "<< endl << " "  << myMat << endl << endl;
Run Code Online (Sandbox Code Playgroud)

理想情况下,我可以使用此Mat的内容获得QString.有一个巧妙的方法来做到这一点?

qstring qt opencv opencv-mat

0
推荐指数
1
解决办法
357
查看次数