OpenCV
文章平均质量分 63
opencv学习与实践
三月微暖寻春笋
选择大于努力,方向决定努力的价值。所有的努力与挣扎都是为了内心的平和。
展开
-
【OpenCV进阶】图像中添加中文字幕
OpenCV自3.2版本后,在OpenCV_contrib模块中添加了freeType模块,将OpenCV_contrib模块编译后可以使用freeType模块并方便的在图像中添加中文字体(如果是3.1之前的OpenCV版本,那就需要你自己下载freeType库,然后编译成动态库再使用了,相信大家应该不会在用那么老的版本了吧)。好了,不废话了,上干货吧。如上代码中Font.ttf是字库,需要自己到网上下载的,网上很多,我下了楷体的中文字体类型(如果大家需要可以私信或者评论,我私发你)原创 2024-04-02 11:46:24 · 639 阅读 · 0 评论 -
【linux-opencv】linux编译opencv报错:in-source builds are not allowed
linux下opencv编译问题——in-source builds are not allowed转载 2022-11-22 09:42:10 · 1394 阅读 · 0 评论 -
opencv函数解读之模板匹配函数
opencv模板匹配函数解读原创 2022-05-01 10:00:00 · 668 阅读 · 2 评论 -
opencv编译前依赖包libjasper-dev无法安装问题解决
opencv编译前常规步骤都需要安装编译过程的依赖包,一般为以下几个:sudo apt-get install build-essentialsudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-devsudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev lib转载 2022-04-02 17:12:27 · 3597 阅读 · 5 评论 -
opencv联合编译ffmpeg
opencv联合编译ffmpeg时需要打开选项“-DWITH_FFMPEG=ON”,当配置完成看到如下图所示时,则说明ffmpeg配置成功了。如果配置结果中FFMPEG项仍为NO,建议重新打开一个终端再执行下配置命令,因为ffmpeg虽然安装好了,但是在该终端下还没有生效。下载ffmepg并解压,在文件目录下运行“./configure”配置编译选项。这一步以下库务必安装完成,否则会导致后面opencv配置失败。安装完后,输入ffmpeg,显示如下,则说明安装成功了。原创 2022-03-21 15:29:54 · 2962 阅读 · 0 评论 -
error:(-217:Gpu API call)invalid device function in function‘make_policy‘ 错误分析
好了,opencv配置好了,开始编译和安装,这一步就不再赘述了,具体可以看我以前的文章。安装好了之后,我发现在TX2上运行opencv-dnn的推理,GPU能正常启用,但是在NX和AGX上却无法正常启用,都报出了(-217:Gpu API call)错误。60, 61,NX为70,AGX为70,但是使用jtop查看NX与AGX的GPU arch时显示为7.2,猜测可能7.2就是对于的70。其中NVIDIA GPU arch即为你所设置的平台的显卡架构,一般这个值在jetson各系列中,TX2为。原创 2021-12-10 10:53:37 · 5914 阅读 · 0 评论 -
jetson系列opencv版本更换
opencv编译好后会,安装完会出现四个文件夹,如下图所示:其中:bin文件夹是可执行程序;lib是动态库文件,其下面有个pkgconfig文件夹很重要,在配置路径时需要用到;原创 2021-09-09 10:42:06 · 1508 阅读 · 2 评论 -
OpenCV计算模块的耗时
OpenCV计算耗时原创 2021-06-16 11:06:05 · 552 阅读 · 0 评论 -
opencv调用darknet框架的分类模型
直接先上代码:///param img:输入图像///param WeightsPath:权重文件路径///param CfgPath:网络文件路径int Classifier(Mat& img,string& WeightsPath,string& CfgPath){ cv::dnn::ClassificationModel ClassNet(Weight...原创 2020-04-09 21:18:31 · 1234 阅读 · 1 评论 -
opencv中求图像像素值中位数
话不多说,直接上源码:int GetMidValue(Mat& input){ int rows = input.rows; int cols = input.cols; float histogram[256] = { 0 }; int threshold = 0; for (int i = 0; i < rows; ++i) { ///获取i行首像素的指针...原创 2020-02-27 14:59:19 · 4076 阅读 · 0 评论 -
使用opencv第三方库的makefile文件示例
1.使用opencv生成可执行程序INCLUDE = $(shell pkg-config --cflags opencv)#opencv的include头文件路径LIBS = $(shell pkg-config --libs opencv) -lm #opencv的lib库文件路径OTHERLIB= -lxxx #其他依赖库SOURCES = Demo.cpp a.cpp a.h ...原创 2020-02-25 17:12:11 · 1606 阅读 · 0 评论 -
VS中opencv编译错误error:“ACCESS_MASK”
这是命名空间污染问题。在不同命名空间下,cv的命令空间和windows.h文件中都有对ACCESS_MASK的定义,此时编译系统无法判定使用的是哪一个ACCESS_MASK,故引起报错。在开发过程中,使用过多的using namespace容易引起命名空间污染,一旦错误,问题排查也比较麻烦。建议尽量不要在头文件中使用using namespace。...原创 2020-02-19 11:02:30 · 437 阅读 · 0 评论 -
Linux系统编译CUDA版的OpenCV4.2
linux系统编译cuda版的opencv4.2原创 2020-02-09 20:10:42 · 10204 阅读 · 14 评论 -
windows下使用cmake-gui编译opencv源码
安装cmake工具,尽量安装较新版本的cmake,否则可能导致没有对应的VS版本; 打开cmake界面,在where is source code 中输入源码目录(解压后的一级目录),在where to build the binaries中输入cmake生成的工程目录。 点击configure选择你的VS版本以及平台;随后cmkae开始自动配置(过程时间有点长),第一次会有红色的错误,但是没...原创 2020-01-05 16:45:56 · 2389 阅读 · 0 评论 -
opencv中convertScaleAbs函数执行原理
函数原型void convertScaleAbs(InputArray src, OutputArray dst, double alpha = 1, double beta = 0);输出:dst=abs(src*alpha+beta)示例: Mat sobelx(src.size(), CV_16S)...原创 2019-09-05 14:34:27 · 11763 阅读 · 5 评论 -
openCV中访问图像像素的几种方法
1,通过at()函数Mat grayim=imread("lena.jpg");for(i=0;i<grayim.rows;++i) for(j=0;j<grayim.cols;++j) { ///图像二值化 if(grayim.at<uchar>(i,j)>100) grayim.at<uchar>(i,j)=255; else grayim.at<uchar>(i,j)=0; }a原创 2017-01-12 20:52:11 · 2975 阅读 · 0 评论 -
GDAL图像数据格式转化为openCV图像数据格式
openCV库提供了大量的图像处理函数,给图像处理算法工程师提供了很多的便利,但是在处理卫星影像等大图像时,opencv中的imread()函数无法装载。但是利用gdal中的函数将影像加载到程序中,再利用opencv中的函数去处理,这样就能充分利用openCV中大量的函数了。废话不多,直接上代码:GDALAllRegister(); SourceTifPath = m_strimagedir原创 2017-01-08 11:14:43 · 4198 阅读 · 6 评论 -
在VS中配置opencv库
第一步与方法一相同,将第二步与第三步合并,配置方法如下图所示,直接在链接器-》输入-》附加依赖项中链接到相关库,如果是debug状态,则设置…如我的版本是3.4.4,下图是debug版本的,那么将“opencv_world344d.lib”添加即可。如果是release版本的,则添加“opencv_world344.lib”文件,数字后面有d代表是debug版本的。注:我在编译opencv时将所有的库写进了opencv_world,如果没有写进一个lib库,则需要将所有的lib库名字全部写入附加依赖项中。原创 2016-12-19 16:53:25 · 2878 阅读 · 2 评论 -
基于opencv的小区域填充函数
opencv中没有自带的小碎斑填充,为此自己写了一个,记录下来以便搬运。/***************************************************************************************Function: 小区域填充binaryImg: 输入的二值化图像fillsize: 轮廓阈值,小于该阈值则被填充*********...原创 2019-08-23 14:48:09 · 882 阅读 · 0 评论 -
最大类间算法OSTU源码
最大类间算法是求取一个阈值,将图像分为两部分后,这两部分的像素平均值的方差最大。计算过程如下:设u1为第一部分的均值,u2第二部分的均值,w1为第一部分的像素所占的比例,w2为第一部分的像素所占的比例,即w1+w2=1;则这两部分的方差为var=w1* w2* (u1-u2)*(u1-u2)C++ 源代码如下int GetOSTUthresd(Mat input){ int row...原创 2019-08-23 14:51:37 · 219 阅读 · 0 评论 -
opencv中traincascade的一个demo
1 分类器的训练训练级联分类器traincascade需要opencv中的两个exe文件,这两个文件分别是opencv_createsamples.exe和opencv_traincascade.exe文件。训练过程可分为以下几步:(1)准备正负训练样本。正样本:正样本尺寸保持一致,建议自己写个小程序来剪裁图像实现尺寸统一。负样本:负样本的尺寸无需统一,负样本越多...原创 2016-12-14 10:53:13 · 2399 阅读 · 3 评论 -
openCV中sobel边缘增强
sobel算子是一个单边缘检测算子,具有方向性。将两个方向叠加后的检测代码如下void SobelEnhance(const Mat src, Mat& dst){ Mat sobelx(src.size(), CV_16SC1);///边缘检测后,会有负值,也会有大于255的值,因此类型设为CV_16SC1有符号类型 Mat sobely(src.size(), CV_16SC1...原创 2019-08-23 14:05:42 · 3350 阅读 · 0 评论