Tag: opencv

opencv:将Scalar转换为float或double类型

任何人都可以帮助我将标量类型的openCV转换为基本类型,如float或double? Scalar Sum1=sum(arg1),Sum2=sum(arg2); theta.at(i,j)=0.5*atan(Sum1/Sum2); 我必须对Mat对象arg1和arg2 (邻域和)的所有元素求和,然后我必须执行它们的除法以在每个像素处找到方向字段。 我执行了总和,但由于我必须应用arctan函数,标量类型不适合。 任何人都可以帮助我将标量类型转换为基本类型吗? 实际上我正在尝试应用log-gaborfilter,到目前为止我所做的代码是: //function to enhance fingerprint by log-gabor filter void filter(Mat src, Mat finalImage) { //Sobel derivatives for orientation estimation Mat grad_x,grad_y,grad2_x,grad2_y,fImage; src.convertTo(fImage, CV_32F); //1st and second order gradient Sobel(fImage,grad_x,CV_32F,1,0,3); Sobel(fImage,grad_y,CV_32F,0,1,3); Sobel(fImage,grad2_x,CV_32F,2,0,3); Sobel(fImage,grad2_y,CV_32F,0,2,3); //orientation estimation Mat theta=Mat::zeros(fImage.size(),CV_32F); Size block=Size(12,12); copyMakeBorder(grad_x, grad_x, block.height/2, block.height/2, block.width/2,block.width/2 , BORDER_CONSTANT, Scalar::all(0)); copyMakeBorder(grad2_x, […]

clCreateImage2D – 加载RGB图像

我正在尝试使用clCreateImage2D将OpenCV图像( IplImage )加载到GPU中。 使用IplImage原因是,我想加载任何类型的图像。(jpg,bmp,png)。 我可以使用clCreateImage2D和CL_MEM_READ_ONLY | CL_MEM_COPY_HOST_PTR来加载图像 CL_MEM_READ_ONLY | CL_MEM_COPY_HOST_PTR mem_flags,以及CL_RGB和CL_UNORM_SHORT_565类型。 但是在内核函数中read_imagef函数不接受CL_UNORM_SHORT_565类型。 那么,我如何将RGB图像发送到OpenCL内核函数呢? 编辑:我将输入图像转换为32位。 请问什么是image_channel_order和image_channel_data_type ? 订单不能是RGBA,因为它没有alpha通道。

OpenCV图像arrays,4D矩阵

我试图将IPL_DEPTH_8U ,3通道图像存储到一个数组中,以便我可以在内存中存储100个图像。 为了初始化我的4D数组,我使用了以下代码(行,列,通道,存储): int size[] = { 324, 576, 3, 100 }; CvMatND* cvImageBucket; = cvCreateMatND(3, size, CV_8U); 然后我创建了一个矩阵并将图像转换为矩阵 CvMat *matImage = cvCreateMat(Image->height,Image->width,CV_8UC3 ); cvConvert(Image, matImage ); 我如何/访问CvMatND将CvMat复制到存储位置? 例如cvImageBucket(:,:,:,0) = matImage; // copied first image into array cvImageBucket(:,:,:,0) = matImage; // copied first image into array

对Raspberry PI进行交叉编译

我正在为Raspberry PI开发板编写GUI应用程序,该应用程序利用OpenCV库来处理一些图像数据。 最终结果是带有一些按钮的图形应用程序,以及显示图像的区域。 我尽可能地避免使用IDE,因为除了通常与我工作的项目一起使用的新语言之外,每个工具都需要学习一个新的IDE是很乏味的。 我所有开发的95%都在VIM中。 如何设置一个基本的makefile项目,该项目使用GCC,OpenCV,GTK +,并为在x86系统上运行的Ubuntu安装上运行的Raspberry PI(即:arm11)进行编译? 目标是使这个可以在任何Linux系统上构建的可移植项目。 我熟悉通过apt-get安装OpenCV和GTK +库,我也知道我需要在main.c文件中包含特定的头文件。 现在我只需要弄清楚makefile中为ARM编译所需的基本语句,并链接到相应的库。 我通过apt-get获得的OpenCV库似乎是针对x86的,我不知道是否包含了ARM变体。 谢谢。

从haskell调用C opencv函数

我正在尝试将OpenCV与Haskell一起使用。 我的想法是从Haskell调用c ++函数。 现在我这样做: {-# LANGUAGE ForeignFunctionInterface #-} module Lib ( someFunc ) where import Foreign.C import Foreign.C.String import Foreign.C.Types import Foreign.Ptr data LplROI = LplROI { coi :: CInt, xOffset :: CInt, yOffset :: CInt } data LpImage = LpImage { align :: CInt, alphaChannel :: CInt, borderConst :: CInt, borderMode :: CInt, channelSeq […]

匹配的SIFT关键点的坐标

我正在用openCV做一个项目,在那里我使用SIFT关键点匹配两个图像,并使用K最近邻搜索得到相同的匹配。 其中k = 2。 现在我想获得SIFT关键点的坐标值,它在image2中具有良好匹配,并且还获得Image2中相应关键点的坐标值。 任何身体都可以帮助我。 谢谢。 我找到了解决方案……这很容易……愚蠢的我……我只是将关键点转换为CvPoints,从中我可以轻松获得坐标值….

访问负像素值OpenCV

我试图在OpenCV中对图像执行过零边缘检测。 我模糊并使用cvLaplace()然后从(0,max)缩放它。 我的问题是:如何以正确识别负值的方式访问该图像中的像素值? 使用OpenCV(cvPtr2D)提供的函数返回无符号字符。 有什么想法或意见吗? 谢谢

opencv在video上显示变量

是否可以使用opencv在屏幕上叠加%d? CvPutText() 虽然尝试了但是无法完成

使用ffmpeg或OpenCV处理.Raw图像

阅读原始图像格式的维基百科页面后 ,这是任何图像的数字否定。 要观看或打印,必须处理相机图像传感器的输出,即转换为场景的照片渲染,然后以标准光栅图形格式(如JPEG)存储。 无论是在相机内还是稍后在原始文件转换器中完成,该处理涉及许多操作,通常包括 我使用v4l2示例从我的Logitech c920中抓取了一些.raw文件但是当我显示图像时它看起来像这样: 原始图像在其他帧中我可以看到我的影子 有谁知道如何处理这些文件以查看完整的框架? 这是原始.raw文件的链接

OpenCV的。 如何乘以点和矩阵(CvMat)

我有用于旋转的矩阵: CvMat* rot_mat = cvCreateMat(2, 3, CV_32FC1); cv2DRotationMatrix(center, angle, scale, rot_mat); … 该矩阵用于图像操作。 cvWarpAffine(…, …, rot_mat, …, …); 我必须知道,这个矩阵应该如何影响精确的像素 – 它应该被转移的位置。 如何将2D点(像素位置)和我的矩阵相乘以找出应该转移像素的位置?