opencv-python:在图片上写入文字

opencv-python:在图片上写入文字,第1张

方式1:cv.putText(不支持中文)

原图

写入文字后的图片(汉字变为???)

方式2:使用PIL(支持中文)

原图

添加文字后的图片(支持添加汉字)

代码一:点击时显示坐标,鼠标移动时不显示。

[cpp]

#include <cv.h>

#include <highgui.h>

#include <stdio.h>

IplImage* src=0

void on_mouse( int event, int x, int y, int flags, void* ustc)

{

CvFont font

cvInitFont(&font, CV_FONT_HERSHEY_SIMPLEX, 0.5, 0.5, 0, 1, CV_AA)

if( event == CV_EVENT_LBUTTONDOWN )

{

CvPoint pt = cvPoint(x,y)

char temp[16]

sprintf(temp,"(%d,%d)",pt.x,pt.y)

cvPutText(src,temp, pt, &font, cvScalar(255, 255, 255, 0))

cvCircle( src, pt, 2,cvScalar(255,0,0,0) ,CV_FILLED, CV_AA, 0 )

cvShowImage( "src", src )

}

}

int main()

{

src=cvLoadImage("lena.jpg",1)

cvNamedWindow("src",1)

cvSetMouseCallback( "src", on_mouse, 0 )

cvShowImage("src",src)

cvWaitKey(0)

cvDestroyAllWindows()

cvReleaseImage(&src)

return 0

}

代码二:鼠标移动时显示坐标,点击时不显示坐标

[cpp]

#include <cv.h>

#include <highgui.h>

#include <stdio.h>

IplImage* src=0

IplImage* dst=0

void on_mouse( int event, int x, int y, int flags, void* ustc)

{

可以在新图像里面,水平放置你要的文字

然后旋转这幅图像

再用旋转过的文字图像,与原图像叠加

旋转可这样做

先计算旋转矩阵

CvMat* Rot_Mat = cvCreateMat(2,3,CV_32FC1)

cv2DRotationMatrix(center,angle,scale,Rot_Mat)

然后旋转变换

cvTransform(src,dst,Rot_Mat,0)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11274548.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存