《学习OpenCV》第四章第6题
来源:互联网 发布:同花顺期货模拟软件 编辑:程序博客网 时间:2024/06/05 07:45
写一个程序,使其创建一幅图像,然后将图像所有像素值置为0,显示出来。当用户点击一个位置,便可以在此位置输入一个标签。允许使用Enter键进行编辑,以及实现一个退出键。按Enter键可以修改当前位置的标签。
#include<iostream>#include"highgui.h"#include"cv.h"using namespace std;using namespace cv;#define WIDTH 512#define HEIGHT 512IplImage *img = cvCreateImage(cvSize(WIDTH, HEIGHT), 8, 3);IplImage *t = cvCloneImage(img);int ok = 0;int enter = 0;int flagright=0;CvPoint point;char *c = "|";void on_mouse(int event, int x, int y, int flags, void *param) { switch (event) { //按下左键后 case CV_EVENT_LBUTTONDOWN: if (flagright) c = "|";//判断是否按过右键 if(c[0]=='|')//判断按下左键,是移动,还是准备建立标签 enter = 1; else enter = 0; flagright = 0; ok = 1; point = cvPoint(x, y); cvPutText(img, c, point, &cvFont(1), cvScalarAll(255)); break; //按下右键后 case CV_EVENT_RBUTTONDOWN: cvCopy(img, t); enter = 0; ok = 0; flagright = 1; break; }}int main() { cvZero(img); cvZero(t); cvNamedWindow("test"); cvSetMouseCallback("test", on_mouse); while (1) { cvCopy(t, img); if (ok) cvPutText(img, c, point, &cvFont(1), CV_RGB(255, 255, 255)); cvShowImage("test", img); char a = cvWaitKey(10); //回车 if (a == 13) enter = 1; //删除,但要判断是否越下界 else if (a == 8) { if (strlen(c)) c[strlen(c) - 1] = '\0'; } else if (a == 27) break; //确定是否是初始字符'|' else if (enter&&c == "|"&&a < 126 && a>32) { char b[2] = { a,'\0' }; c = (char*)malloc(sizeof(char) * 2); strcpy(c, b); } //可显示字符,增加到c之后 else if (enter&&a < 126 && a>32) { char b[2] = { a,'\0' }; strcat(c, b); } } return 0;}
阅读全文
0 0
- 《学习OpenCV》第四章第6题
- 《学习OpenCV》第四章第5题
- 《学习OpenCV》第四章课后题6
- 《学习OpenCV》练习题第四章第四题
- 学习OpenCV第四章第四题答案
- 《学习opencv》第四章第四题
- 《学习openCV》第四章练习题4-6
- 学习opencv ,第六章第四题
- 学习opencv第四章第三题
- 《学习OpenCV》练习题第二章第四题
- 《学习OpenCV》练习题第三章第四题
- 《学习OpenCV》练习题第四章第二题
- 《学习OpenCV》练习题第四章第六题
- 《学习OpenCV》练习题第三章第四题
- 学习OpenCV第四章第一题答案
- 学习OpenCV第四章第二题答案
- 学习OpenCV第四章第五题答案
- 《学习OpenCV》第四章课后题2
- caffe模型weights&featureMap 可视化(c++)
- 获取验证码:倒计时封装
- final的知识点
- JAVA对XML文件的读写(有具体的代码和解析)
- linux gentoo gnome任务栏(panel)消失的解决办法
- 《学习OpenCV》第四章第6题
- 开源框架:DBUtils使用详解
- 运行dubbo-admin走到zkclient.ZkEventThread
- Ubuntu 修改Apache2端口
- 结构体基础知识
- android面试题
- Scrapy安装错误:Microsoft Visual C++ 14.0 is required...
- 什么是 Node.js ?
- Java Object 基类