草庐IT

ctypes-opencv

全部标签

c++ - 有没有办法使用 OpenCV 来均衡每个样本图像 16 位的直方图?

我正在处理16位/样本图像。是否有一种(简单的)方法来执行此类图像的直方图均衡化(转换为8bps不是一种选择)? 最佳答案 equalizeHist在OpenCV中只需要8位数据。但OpenCV中的图像归一化不限于8位数据。查看其说明here.在您的情况下,对函数的调用应如下所示:normalize(src_image,dst_image,0,65535,NORM_MINMAX);如果你想提高图像的对比度,首先尝试标准化,只有当这不起作用时才尝试均衡。规范化速度更快且破坏性更小。引用:http://answers.opencv.or

c++如何将视频序列放入OpenCV中的vector <Mat>中?

我是c++的新手。我读了一个视频,我想把视频的图像序列保存到一个叫做vector帧的vector中。以下是我的代码,如果有人可以帮我改正,非常感谢!#include#include#include#includeusingnamespacestd;usingnamespacecv;intmain(){VideoCapturecapture("/home/P1030.MOV");inttotalFrameNumber=capture.get(CV_CAP_PROP_FRAME_COUNT);vectorframe;namedWindow("Display",WINDOW_AUTOSIZE

c++ - 如何将 gabor 过滤器应用于 opencv 中的图像?

我有一些带有gabor滤波器代码的小波,它是这样的..但我不知道如何在我的图像上使用它?我知道matlab有一些方法,即matlabway.但我使用的是opencv,我对这个领域和matlab很陌生,我不知道如何从matlab代码编写opencv代码,所以,我应该用opencv做什么?非常感谢!****更新****我试过@berak的方法,这是原始图像这是在我应用过滤器之后全白,什么都没有,下面是我的参数,intkernel_size=31;doublesig=1,th=0,lm=1.0,gm=0.02,ps=0;cv::Matkernel=cv::getGaborKernel(cv:

c++ - 从 OpenCV FeatureDetector 检索特征类型

在OpenCV中,创建一个cv::FeatureDetector是很常见的通过提供特征的名称:cv::Ptrdetector=cv::FeatureDetector::create("SURF");这是一个工厂模式,是cv::FeatureDetector一个抽象类。然后,给定一个cv::Ptr类型的变量,是否可以检索特征的名称?是"SURF"在我的示例中。 最佳答案 从cv::Algorithm派生的类继承name()方法,该方法返回包含算法名称的字符串。对于SURF检测器,name()返回字符串Feature2D.SURF这是一

python - OpenCV:何时使用 GridAdaptedFeatureDetector?

我正在尝试制作一个基于描述符的检测器。我正在使用OpenCV,我看到有很多特征类型和描述符类型,还有匹配器类型。更多我还看到可以有组合类型,如Grid或Pyramid用于特征类型。我还没有找到对它们的很好的解释(金字塔除外,它说这是好的“fordetectorsthatarenotinherentlyscaled”)。我想对每种类型和每种组合(特征-描述符-匹配器)进行简短描述,以形成一个想法,而不是创建详尽的工作来搜索和验证每种可能的组合。有人知道这方面的更多信息吗? 最佳答案 术语特征通常用于两种不同的事物:特征检测器,特征描述

Python的计算机视觉:OpenCV与Pillow

1.背景介绍Python的计算机视觉:OpenCV与Pillow1.背景介绍计算机视觉是一种通过计算机对图像进行处理和理解的技术。它广泛应用于图像处理、机器人导航、人脸识别等领域。Python是一种易于学习、易于使用的编程语言,具有强大的计算机视觉库OpenCV和图像处理库Pillow。本文将涵盖OpenCV和Pillow的基本概念、核心算法、实际应用场景和最佳实践。2.核心概念与联系2.1OpenCVOpenCV(OpenSourceComputerVisionLibrary)是一个开源的计算机视觉库,提供了大量的计算机视觉算法和工具。它支持多种编程语言,包括C++、Python、Java等

Opencv获取笔记本摄像头

 视频流和摄像头都是一帧一帧图片拼起来的,所以打开摄像头就是获取每帧的图片。defvideo_demo():capture=cv.VideoCapture(0)while(True):ret,frame=capture.read()#ret和frame为read函数的两个返回值,其为一帧一帧的图片frame=cv.flip(frame,1)#原来的摄像打开是镜像的,加了这一步后,摄像中的动作跟随人。cv.imshow("video",frame)c=cv.waitKey(50)ifc==27:#判断是否在时间内按了escbreakret,frame=capture.read()ret代表是否获

c++ - OpenCV (C++) : how to save a 16bit image?

我正在使用kinect,我需要保存RAW深度图像。这意味着我不应该通过转换为8位来保存它(这就是imwrite正在做的!),而是将它保存为16位,而不减少任何位深度。我希望这个问题不会太琐碎,但我是OpenCV编程的新手。我尝试了以下方法,但它不起作用:[...]MatimageDepth(480,640,CV_16UC1);MatimageRGB;//VideostreamsettingsVideoCapturecapture;capture.open(CAP_OPENNI);if(!capture.isOpened()){cerr提前致谢。 最佳答案

c++ - OpenCV:是否可以从角落检测矩形?

我有一张照片,其中一个人拿着一张纸。我想检测那张纸的矩形。我尝试按照OpenCV的不同教程以及各种SO答案和示例代码来检测正方形/矩形,但问题是它们都依赖于某种轮廓。如果我按照squares.cpp示例,我会从等高线得到以下结果:如您所见,手指是轮廓的一部分,因此算法找不到正方形。我也尝试过使用HoughLines()方法,但我得到的结果与上面类似:不过我可以可靠地检测到角点:图像中还有其他角,但我将发现的角总数限制在总是被发现。是否有某种算法可以从图像的多个角中找到一个矩形?我似乎找不到现有的方法。 最佳答案 您可以应用形态过滤器

c++ - 如何在 OpenCV 中不使用插值(零填充)调整大小?

是否有一种有效的方法可以在不使用任何插值的情况下在OpenCV中调整图像大小?而不是传统的“调整大小”,我希望我的图像将像素重新映射为更大的图像,但用0填充其他所有内容。例如将img1放大到img2的2倍以下:img1=[1,2,3,4,5,6,7,8,9]cv::resize(img1,img2,cv::Size(6,6));img2=[1,0,2,0,3,0,0,0,0,0,0,0,4,0,5,0,6,0,0,0,0,0,0,0,7,0,8,0,9,0,0,0,0,0,0,0]我知道最明显的方法是只使用for循环,但我想知道是否有使用OpenCV调用的更有效方法?