关于opencv 中cvPutText函数的使用

他可以在图片上显示文字。我现在需要在视频显示,即显示鼠标所点击处的像素值,然而这个函数只能显示在每一帧上,很快就会被后一帧覆盖了,有什么办法能让他一直显示到下一次点击。。就剩一个c币了

0

4个回答

你视频播放应该是一个while循环显示每一帧吧,你在每一次循环的每一帧显示之前也就是imshow函数之前都调用cvPutText,显示相同的内容,直到下一次点击再改变它的内容。大致像下面这样吧,1.8的opencv不太熟,建议使用2.4以后版本的opencv吧。

IplImage * frame;//帧
string your_string;
cvNamedWindow("img",0);

CvFont font;
cvInitFont(&font,CV_FONT_HERHEY_COMPLEX,0.5,0.5,1,2,8);
while(1){
cvPutText(frame,your_string,cvPoint(50, 50), &font, CV_RGB(255,0,0));
cvShowImage("img",frame);
cvWaitKey(0);
}


1
1

。。。谢了大哥,这篇我看过,不是我问的问题啊

0

每次显示图片之前先获取鼠标坐标,然后先把像素值putext到图片上再显示图片应该就可以了吧

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
OpenCV中函数imwrite使用
在使用OpenCV保存图片时会出现问题,opencv_world300.dll处引发异常,尝试不同的opencv版本依旧出现此问题 后查看imwrite函数教程发现使用不规范。按照规范的imwrite函数例程,可以解决这一问题。 后查看opencv官方指导文档 bool cv::imwrite(const String & filename, InputArray img,
OpenCV中imshow函数的使用
函数功能:在指定窗口中显示图像。 函数原型:void imshow(const string& winname, InputArray mat); 如果窗口是使用cv::WINDOW_AUTOSIZE标志创建的,则图像显示为其原始大小,但仍受屏幕分辨率的限制。否则,图像将按比例缩放以适合窗口。该函数可以缩放图像,取决于其深度: -如果图像是8位无符号的,它将按原样显示。 -如果图像是...
OpenCV中imread函数的使用
OpenCV中imread函数使用
opencv中sift函数使用
<p>rn <br />rn</p>rn<p>rn <p>rn 20周年限定:唐宇迪老师一卡通!<span style="color:#337FE5;">可学唐宇迪博士全部课程</span>,仅售799元(原价10374元),<span style="color:#E53333;">还送漫威正版授权机械键盘+CSDN 20周年限量版T恤+智能编程助手!</span>rn </p>rn <p>rn 点此链接购买:rn </p>rn <table>rn <tbody>rn <tr>rn <td>rn <span style="color:#337FE5;"><a href="https://edu.csdn.net/topic/teachercard?utm_source=jsk20xqy" target="_blank">https://edu.csdn.net/topic/teachercard?utm_source=jsk20xqy</a><br />rn</span>rn </td>rn </tr>rn </tbody>rn </table>rn</p>rn购买课程后,可扫码进入学习群<span>,获取唐宇迪老师答疑</span> rn<p>rn <br />rn</p>rn<p>rn <img src="https://img-bss.csdn.net/201908070546214056.jpg" alt="" /> rn</p>rn<p>rn Opencv计算机视觉实战课程旨在帮助大家快速掌握机器视觉领域必备知识点原理及其在Opencv中的使用方法。课程风格通俗易懂,用最接地气的方式来讲解晦涩难懂的知识点。整体设计以项目实战来驱动学习,课程中所有代码均使用Python完成,在实战中首先讲解整体解决方案,接下来通过Debug模式来一步步分析每一行代码的作用及其完成的效果,提供全部课件及项目中所使用代码和数据。rn</p>
opencv中copyTo函数的使用
我们已经知道的是,使用copyTo函数可以得到一个复制的矩阵。 A.copyTo(B); 就可以得到和A一毛一样的矩阵B。当然需要事先声明B。并且两者可以互不相关的做各种操作。 copyTo还有一个重构函数copyTo(B,MASK)。意思是可以得到一个附加掩膜MASK的矩阵B。我们从图像的角度来看这个函数的作用。 首先需要生成一张掩膜MASK,一般情况下这个膜和你需要操作的对象图像一样大
opencv中puttext()函数的使用
在进行图像交点匹配的时候,匹配点已经找出来,老板让将找到的匹配点进行标记,进行排号,方便查找哪些点没有匹配上。 代码如下:for(int i=0;i<pt.rows;i++){ stringstream s; string str; s<<i; s>>str; puttext(src,str,Point2d(pt.at(i,0),pt.at(i,1)),CV_FONT_HERSHEY_SIMPL
OpenCV中inRange()函数的使用
OpenCV中的inRange()函数可实现二值化功能(这点类似threshold()函数),更关键的是可以同时针对多通道进行操作,使用起来非常方便! 函数原型(C++): void inRange(InputArray src, InputArray lowerb, InputArray upperb, OutputArray dst) 官方文档中的解释:Checks if array
opencv中cvmatchshapes函数的使用
其实我就想实现一个很简单的功能,根据当前输入的衣服图片判断是上衣?裤子?裙子?rn尝试用cvmatchshapes,但是结果一直不正确。不知道cvmatchshapes这个神奇的函数究竟如何使用才能提高准确率呢?rn想问问大神们有没有这方面的经验?rn万分感谢!在线等!
Opencv中的reshape函数的使用
1. 对于没有进行填补的图像(可以使用isContinuous函数检测,如果是1,则没有进行填补过)2. 第一步检查完之后,我们应该注意reshape函数的第一个值是通道数,若为0, 则保持原来的通道数, 第二个参数是行数。注意:行数和列数的乘积保持不变。3. 不能用reshape后的Mat,又赋给原来的Mat, 必须赋给另一个Mat型...
OpenCV中resize()函数使用
OpenCV中resize()函数使用
关于 opencv中的 cvFindContours()函数
对于cvFindContours这个函数的内部构造究竟如何,看opencv源码,封装性太好,不是很懂,因此请教各位达人。
Opencv 中图形绘制函数 rectangle函数的使用
函数 rectangle: Opencv 源码: void rectangle( InputOutputArray _img, Point pt1, Point pt2, const Scalar& color, int thickness, int lineType, int shift ) { Mat img
opencv基本函数使用
opencv函数库包含了众多图像操作的基本函数,以下列出将常用的函数,方便以后查询: 1.读取图片:imread 原函数:CV_EXPORTS_W Mat imread( const string& filename, int flags=1 ); 输入参数:filename:文件名,包含路径;flags:图片类型() 返回值:图像标识符(可通过图像标识符对图像进行操作)2.显示图片:ims
opencv函数使用——imread
imread函数读取图片的位置,最好放置在当前项目下,这样才不会报错。
opencv 图像显示函数使用
当需要显示mat 格式图像时, 使用imshow函数, 如:   cv::mat frame    cv::imshow("窗口名字", frame ); 如果需要指定窗口初始化的显示位置, 在调用imshow之前, 调用函数moveWindow cv::moveWindow("窗口名字", 0,0) 其中后两个参数为显示窗口起始坐标x,y
opencv Sobel函数的使用
void Sobel(Mat &amp;amp;img) { Mat bmp = img.clone(); Sobel( img, bmp ,CV_8U ,0, 1); Sobel( img, img, CV_8U, 1, 0); //整合到一幅图 img = img | bmp; bmp.release(); threshold(img, img, 0, 255, CV_THRESH...
关于opencv函数与C++函数
用opencv自带函数或者C++写的类都能实现一些相同的效果,那么那一种效率更高一点呢,或者说更适合对速度要求特别高的程序的开发。我想做一个检测高速皮带上运输的货物状况的程序,要求在50毫秒内要完成采集、预处理、分割、比对。求类似的例子或。
[关于OPENCV函数未定义的]
近期在编译一个工程,里面使用到大量OPENCV函数。rnrn然后我去GitHub上面下载了opencv310源代码,进行cmake编译使用vs2013生成debug和release的lib库。rnrn在qt工程的.pro文件中我是这样写的rn[code=c]QMAKE_CXXFLAGS += -DOPENCV_DISPLAYrnINCLUDEPATH += E:\openCV\opencv\build\includernLIBS += -LE:\Calibrator_Unified\librncontains(CONFIG,Debug)rnmessage(Debug)rnLIBS += -lopencv_core310d -lopencv_imgproc310d -lopencv_highgui310drnLIBS += -lopencv_video310d -lopencv_imgcodecs310d -lopencv_features2d310d -lopencv_calib3d310drnrncontains(CONFIG,Release)rnmessage(Release)rnLIBS += -lopencv_core310 -lopencv_imgproc310 -lopencv_highgui310rnLIBS += -lopencv_video310 -lopencv_imgcodecs310 -lopencv_features2d310 -lopencv_calib3d310rnrnLIBS += -luser32rnSOURCES += DetectionDev/cornersExtraction.cpp \rn DetectionDev/datadetector.cpp \rn DetectionDev/Board.cpp \rn CalibDev/CameraCalibratorUnified.cpp \rn CalibDev/CameraUnified.cpp \rn CalibDev/Rotation.cpp \rn Displayer/Displayer.cpp \rn CalibDev/Matrix/Matrix.cpp \rn CalibDev/Matrix/MyMath.cpp \rn CalibDev/Matrix/SVD.cpp \rn CalibDev/LM/LM.cpp \rn CalibDev/Matrix/Log.cpprnrnHEADERS += DetectionDev/cornersExtraction.h \rn DetectionDev/datadetector.hpp \rn DetectionDev/Board.hpp \rn DetectionDev/dataType.h \rn CalibDev/CameraCalibratorUnified.hpp \rn CalibDev/CameraUnified.hpp \rn CalibDev/ColorText.hpp \rn CalibDev/dataType.h \rn CalibDev/Rotation.h \rn Displayer/Displayer.hpp \rn CalibDev/Matrix/Matrix.h \rn CalibDev/Matrix/MyMath.h \rn CalibDev/LM/LM.h \rn CalibDev/Matrix/Log.hrnrnTARGET = Calibrator_UnifiedrnSOURCES += MainCalibrator.cpp[/code]rnrn但是进行编译的时候出现了下列错误(见图片)。rnrn请各位大神解答这是什么错误?rnrn
关于opencv使用imshow函数闪退解决方法
关于opencv使用imshow函数闪退解决方法 将Debug x64下的附加依赖项改为只有后缀为d.lib的那个库文件,去除另一个,问题就这么解决了,虽然我也不知道加上另一个为什么就会闪退。。。emmm...
cvPuttext能换行么?
\n 输出是问号rn
OpenCV中findFundamentalMat函数使用的模型
cv::findFundamentalMat在处理立体图像对的时候经常会用到对极几何的知识,计算基础矩阵也是很常见的事。OpenCV实现了基本矩阵的算法。对于老版本的C代码,计算基本矩阵的RANSAC方法中有一个迭代次数不收敛的bug,可能导致每次计算的采样次数都达到最大限制的次数,其根源在于计算采样可信度的公式有误,新版本的代码还没有仔细看过,不敢确定是否已经修正了这个bug。但是这个bug并不...
怎么使用opencv中watershed函数?
看了书之后,还是不清楚分水岭函数中的标记图像的使用。标记图像在该函数中是怎么起作用?怎么标记一个前景,怎么标记背景?
OpenCV中的cvWarpPerspective函数使用问题
问题如下:rn我已经计算出了cvWarpPerspective中的变换矩阵H。然后使用此H与一幅1024*768的图像进行变换得到了我想要的图像。接着,我使用此H与一幅2068*808的图像,通过cvWarpPerspective计算,得到的图像居然是一片黑的。然后我把此2068*808的图像截取其中一部分,变成1900*806大小,又可以变换了。rn请问大家,是不是cvWarpPerspective函数的输入图像有一定的限制。不能大于某个分辨率?但我用的图像都很大。rnrn希望大侠们帮帮我。最近都被这个问题烦死了。rn邮箱是:zhuhukun@126.comrnrn部分代码如下: rn//这部分可以。使用1024*768的图像rnIplImage* zhk_xformed;rnIplImage* zhk_image;rnIplImage* zhk_image_test; rnzhk_image = cvLoadImage(zhk_file,1);//zhk_file是一幅1024*768的图像。H是已经得到的,只需要使用同个H运算即可。 rnxformed = cvCreateImage( xformed_size, IPL_DEPTH_8U, 3 );rncvWarpPerspective( zhk_image_test, xformed, H, rnCV_INTER_LINEAR|(CV_WARP_FILL_OUTLIERS|CV_WARP_INVERSE_MAP),rncvScalarAll( 0 ) );rncvNamedWindow( "Xformed", 0 );rncvShowImage( "Xformed", xformed );rn//下面这部分就有问题了。我只是把换了一张大点的图像而已。cvWarpPerspective变换后的图像是全黑的。 rnzhk_image_test = cvLoadImage(zhk_file_test,1); //这是一幅2068*808的图像。H与上面的一样。rnzhk_xformed = cvCreateImage( xformed_size, IPL_DEPTH_8U, 3 ); rncvWarpPerspective( zhk_image, zhk_xformed, H,rnCV_INTER_LINEAR|CV_WARP_FILL_OUTLIERS|CV_WARP_INVERSE_MAP,rncvScalarAll( 0 ) );rncvNamedWindow( "zhk_Xformed", 0 );rncvShowImage( "zhk_Xformed", zhk_xformed );
Opencv 中的函数不起作用
在做项目的时候,用opencv中的函数不起作用,网上一个版本说是在debug下添加了不含有d的lib,然后我没有错,后来通过更还了一个版本就解决了。opencv中的函数不起作用,也有可能是两个项目使用的opencv版本不一样。
OpenCV中的Mat函数
Mat是opencv2.0推出的处理图像的新的数据结构,现在越来越有趋势取代之前的cvMat和lplImage,相比之下Mat最大的好处就是能够更加方便的进行内存管理,不再需要程序员手动管理内存的释放。opencv2.3中提到Mat是一个多维的密集数据数组,可以用来处理向量和矩阵、图像、直方图等等常见的多维数据。  下面列举一个小程序,初步窥探下Mat使用方法: 具体的Mat函数直接看文档即可
opencv中的harris角点检测函数
函数接口//! computes Harris cornerness criteria at each image pixel CV_EXPORTS_W void cornerHarris( InputArray src, OutputArray dst, int blockSize, int ksize, double k,
OpenCV中的函数子
随着OpenCV的发展,封装了越来越多的功能,而往往这些功能不是一个函数就能完成的,实现为一组函数又会导致整个库的函数变得杂乱无章,因此常常使用一个新的对象类型来实现这个新功能。通过重载operator()来生成对象或函数子。下面主要讲述了三个新类型cv::PCA、cv::SVD和cv::RNG。 cv::PCA 主成分分析是一种降维的方法,主要是通过分析多维分布从中提取出带有最多信息量的维度...
OpenCV中的HOG的函数
HOG描述函数 C++: gpu::HOGDescriptor::HOGDescriptor(Size win_size=Size(64, 128), Size block_size=Size(16, 16), Size block_stride=Size(8, 8), Size cell_size=Size(8, 8), int nbins=9, double win_sigma=DE
opencv中的split函数
split函数的功能是通道分离 原型 void split(const Mat& src,Mat *mvBegin) void split(InputArray m, OutputArrayOfArrays mv); 用法很显然,第一个参数为要进行分离的图像矩阵,第二个参数可以是Mat数组的首地址,或者一个vector对象 std::vector channels; Mat aC
opencv中的函数
gray = cv2.bilateralFilter(gray, 11, 17, 17) 双边滤波器(Bilateral filter)是一种可以保边去噪的滤波器。可以滤除图像数据中的噪声,且还会保留住图像的边缘、纹理等(因噪声是高频信号,边缘、纹理也是高频信息,高斯滤波会在滤除噪声的同时使得边缘模糊)。那这么优秀的一个滤波器,他到底是个什么呢,其实,它和我们普通的高斯滤波器一样,也是使用一个卷...
opencv中的cvsize函数
那位高手帮帮忙!rnBad argument(array should be CvMat or IplImage) rnin function cvGetSize,C:\User\VP\openvc\cxcore\src\cxarray.cpp(1453)rn是什么原因啊?rn代码如下:#include rn#include rn#include rnrnrnvoid sum_rgb( IplImage* src, IplImage* dst ) rn // Allocate individual image planes.rn IplImage* r = cvCreateImage( [color=#FF0000]cvGetSize(src), [/color]IPL_DEPTH_8U, 1 );rn IplImage* g = cvCreateImage( cvGetSize(src), IPL_DEPTH_8U, 1 );rn IplImage* b = cvCreateImage( cvGetSize(src), IPL_DEPTH_8U, 1 );rnrn // Temporary storage.rn IplImage* s = cvCreateImage( cvGetSize(src), IPL_DEPTH_8U, 1 );rn rn // Split image onto the color planes.rn cvSplit( src, r, g, b, NULL );rn rn // Add equally weighted rgb values.rn cvAddWeighted( r, 1./3., g, 1./3., 0.0, s );rn cvAddWeighted( s, 2./3., b, 1./3., 0.0, s );rnrn // Truncate values above 100.rn cvThreshold( s, dst, 100, 100, CV_THRESH_TRUNC );rn rn cvReleaseImage( &r );rn cvReleaseImage( &g ); rn cvReleaseImage( &b ); rn cvReleaseImage( &s );rnrnrnint main(int argc, char** argv)rnrnrn // Create a named window with a the name of the file.rn cvNamedWindow( argv[1], 1 );rnrn // Load the image from the given file name.rn IplImage* src = cvLoadImage( argv[1] );rn IplImage* dst = cvCreateImage( cvGetSize(src), src->depth, 1);rn sum_rgb( src, dst);rnrn // Show the image in the named windowrn cvShowImage( argv[1], dst );rnrn // Idle until the user hits the "Esc" key.rn while( 1 ) if( (cvWaitKey( 10 )&0x7f) == 27 ) break; rnrn // Clean up and don鈥檛 be piggiesrn cvDestroyWindow( argv[1] );rn cvReleaseImage( &src );rn cvReleaseImage( &dst );rnrnrn
opencv中puttext()函数
API详解:原型void putText( Mat&amp; img, const string&amp; text, Point org,int fontFace,double fontScale,Scalar color,int thickness=1, int lineType=8); 参数1:, Mat&amp; img,待写字的图片,我们写在img图上 参数2:,cons...
OpenCV中的Sobel函数
sobel算子是一种常用的边缘检测算子,是一阶的梯度算法。对噪声具有平滑作用,提供较为精确的边缘方向信息,边缘定位精度不够高。当对精度要求不是很高时,是一种较为常用的边缘检测方法。它进行处理的模板如下:void main() { int64 t0 = cv::getTickCount(); IplImage *frame, *gray, *dst; frame = cvLoadImage(...
OpenCV中重要函数
访问图像像素函数at() 注意点:at中类型名typename与Mat中数据类型的对应关系 详情见官网说明文档http://docs.opencv.org/master/d3/d63/classcv_1_1Mat.html#a9ec1aadc17ab8c8f8334d521719c7732 Mat数据类型转换函数convertTo() 该函数可以将Mat中数据转换为其他数据类型,方便后续计算
Opencv中的remap()函数
void remap( InputArray src, OutputArray dst, InputArray map1, InputArray map2, int interpolation, int borderMode=BORDER_CONSTANT, const Scalar&amp;amp; borderValue=Scalar() );1.src:输入的原图像,输入图像,即原图像,需要单通道8...
OPENCV中的Sobel函数
sobel算子是一种常用的边缘检测算子,是一阶的梯度算法。对噪声具有平滑作用,提供较为精确的边缘方向信息,边缘定位精度不够高。当对精度要求不是很高时,是一种较为常用的边缘检测方法。它进行处理的模板如下:
opencv中的merge函数
该函数用来合并通道 原型 void merge(const Mat* mv, size_t count, OutputArray dst); 第一个参数是图像矩阵数组,第二个参数是需要合并矩阵的个数,第三个参数是输出 void merge(const vector& mv, OutputArray dst );第一个参数是图像矩阵向量容器,第二个参数是输出,这种方法无需说
opencv中的Circle函数
cvCircle(CvArr* img, CvPoint center, int radius, CvScalar color, int thickness=1, int lineType=8, int shift=0) img为源图像指针 center为画圆的圆心坐标 radius为圆的半径 color为设定圆的颜色,规则根据B(蓝)G(绿)R(红)
关于OpenCV中rectangle函数的使用+统计直方图
最近在学习OpenCV3.0左右的版本,在学习直方图的时候,笔者发现了一个问题,在看官方的文档说明,也就是opencv_tutorials时候,在看imgproc module这个板块的实例说明的时候,学习Histogram Calculation的时候发现函数rectangle函数没有说明有点让人模凌两可,模糊不清,设置有点丈二和尚摸不着头脑,我们且看一下关于rectangle函数的说明:
关于opencv中 cvCvtColor函数的问题
想利用cvCvtColor 把一个RGB图像转换到Lab 空间 为什么转换完了。两幅图片不一样?怎样解决? 求高手指点!积分全部送上了.......