[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)
{
#include <cv.h>#include <highgui.h>int main(int argc, char **argv){
CvCapture* capture = NULL
capture = cvCreateFileCapture("红动中国设计网视频素材2185.avi") if (!capture) return -1 //获取视频的第一帧 并存在bgr_frame
IplImage *bgr_frame = cvQueryFrame(capture) //获得视频的总帧数 CV_CAP_PROP_FPS 帧率
double fps = cvGetCaptureProperty(capture, CV_CAP_PROP_FPS)
//获得原始视频的高度和宽度
CvSize size = cvSize((int)cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH),
(int)cvGetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT)) ///创建一个视频文件参数分别表示 新建视频的名称 视频压缩的编码格式 新建视频的帧率 新建视频的图像大小
CvVideoWriter *writer = cvCreateVideoWriter("1ai.avi", CV_FOURCC('M', 'J', 'P', 'G'), fps, size) //创建首地址 并分配存储空间
IplImage* logpolar_frame = cvCreateImage(size, IPL_DEPTH_8U, 3) // 获取视频的下一帧
while ((bgr_frame = cvQueryFrame(capture)) != NULL)
{ //将视频从笛卡尔坐标系转到极坐标系 参数分别表示 输入图像 输出图像 变换中心 尺度参数 填充输出图像所有参数 + CV_INTER_LINEAR 表示双线性参值(具体什么意思)
cvLogPolar(bgr_frame, logpolar_frame, cvPoint2D32f(bgr_frame->width / 2, bgr_frame->height / 2), 80, CV_INTER_LINEAR + CV_WARP_FILL_OUTLIERS) //将获取到的每一帧从笛卡尔坐标系转到极坐标系后的参数 存到新建的视频文件 cvWriteFrame(writer, logpolar_frame) //将获取的视频通过mainwin窗口进行展示
cvShowImage("mainwin", logpolar_frame) char c = cvWaitKey(33) //ESC 默认退出
if (c == 27) break
} //释放程序中申请的空间
cvReleaseVideoWriter(&writer)
cvReleaseImage(&logpolar_frame)
cvReleaseCapture(&capture) return(0)
}
建议还是用pyqt吧~网上很多文档,wx怎么都感觉麻烦,而且维护也不好~况且pyqt本身的demos就可以参考到一定水平了!
第一次用pyqt做线程和sleep的时候用的是py自带的,能运行,但是经常出错
后来发现必须用qt自己那个什么模式,给你参考一下
class T_login(QtCore.QThread):
def run(self):
self.emit(QtCore.SIGNAL(loginfun(QString)),fun)
self.dologin = T_login()
self.connect(self.dologin, QtCore.SIGNAL(loginfun(QString)), self.do_login)
其他的都差不多
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)