#include <windows.h>
#include <opencv/cv.h>
#include <opencv/highgui.h>
#define ON_CLICK 1
#define NOT_CLICK 0
int THICKNESS=2,mouseState;
CvMat *im;
CvPoint lastPoint;
CvScalar COLOR=cvScalar(0,0,0);
void drawPoint(CvMat *im,int x,int y,int radius,CvScalar color,int thickness,int line_type)
{
CvPoint center;
center.x=x;
center.y=y;
cvCircle(im,center,radius,color,thickness,line_type,0);
cvShowImage("image",im);
lastPoint.x=x;
lastPoint.y=y;
}
void drawLine(CvMat *im,int px,int py,int x,int y,CvScalar color,int thickness,int line_type)
{
CvPoint p;
p.x=x;
p.y=y;
cvLine(im,lastPoint,p,color,thickness,line_type,0);
cvShowImage("image",im);
lastPoint.x=x;
lastPoint.y=y;
}
void paint(int event,int x,int y,int flags,void *param)
{
if (event==CV_EVENT_LBUTTONDOWN)
{
mouseState=ON_CLICK;
drawPoint(im,x,y,THICKNESS,COLOR,-1,8);
}
else if (event==CV_EVENT_LBUTTONUP)
{
mouseState=NOT_CLICK;
drawLine(im,lastPoint.x,lastPoint.y,x,y,COLOR,THICKNESS,8);
}
else if (mouseState && event==CV_EVENT_MOUSEMOVE)
drawLine(im,lastPoint.x,lastPoint.y,x,y,COLOR,THICKNESS,8);
}
void clearScreen()
{
for (int i=0;i<im->height;i++)
for (int j=0;j<im->width;j++)
cvSet2D(im,i,j,cvScalar(255, 255, 255));
cvShowImage("image",im);
}
int main()
{
im=cvCreateMat(300,400,CV_32F);
clearScreen();
cvShowImage("image",im);
cvSetMouseCallback("image",paint,NULL);
int key=cvWaitKey(0);
while (key!=27)
{
switch(toupper(key))
{
case 'S':
cvSaveImage("myImage.png",im,0);
MessageBoxA(GetForegroundWindow(),"保存圖片\"myImage.png\"成功!","保存圖片",1);
break;
case 'C':
clearScreen();
break;
}
key=cvWaitKey(0);
}
cvDestroyAllWindows();
cvReleaseMat(&im);
return 0;
}
OpenCV 畫圖程序
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
- 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
- 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
- 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
- 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- 如opencv開發(fā)前的準備工作中所說,此系列文章是在學習Practical Python and OpenCV(點...
- 本篇筆記主要記錄Opencv里的畫圖功能,主要是下面幾個API: cv2.line() 直線 cv2.rectan...
- 目標 在本教程中,將學習如何: 使用OpenCV函數(shù)行()繪制一行 使用OpenCV函數(shù)橢圓()繪制橢圓 使用Op...