\OpenCV2.3.1\opencv\samples\cpp\tutorial_code\core\Matrix
小盆友
今天准备好水彩和笔纸了嘛?
今天来教你们临摹世界名画
巨人与菊花
好吧
设计了图像处理的算法后
我们往往需要把结果明显的表现出来
通常就是用些点点框框的
怎么画呢大家就看一下代码吧。
有意思的几个
FillPoly
填充多边形内部
void cvFillPoly( CvArr* img, CvPoint** pts, int* npts, int contours,
CvScalar color, int line_type=8, int shift=0 );
img
图像。
pts
指向多边形的数组指针。
npts
多边形的顶点个数的数组。
contours
组成填充区域的线段的数量。
color
多边形的颜色。
line_type
组成多边形的线条的类型。
shift
顶点坐标的小数点位数。
函数cvFillPoly用于一个单独被多边形轮廓所限定的区域内进行填充。函数可以填充复杂的区域,例如,有漏洞的区域和有交叉点的区域等等。
FillConvexPoly
填充凸多边形
void cvFillConvexPoly( CvArr* img, CvPoint* pts, int npts,
CvScalar color, int line_type=8, int shift=0 );
img
图像。
pts
指向单个多边形的指针数组。
npts
多边形的顶点个数。
color
多边形的颜色。
line_type
组成多边形的线条的类型。参见cvLine
shift
顶点坐标的小数点位数。
函数cvFillConvexPoly填充凸多边形内部。这个函数比函数cvFillPoly 更快。它除了可以填充凸多边形区域还可以填充任何的单调多边形。例如:一个被水平线(扫描线)至多两次截断的多边形。
Drawing_1.cpp画的就是刚才说的名画
巨人与菊花
「与」
Drawing_2.cpp
这个就更有趣
OpenCV交响曲。。八重奏啊亲!
我们开始疯狂的绘制。
1 疯狂的棒棒
2 无节操的电视机
3 无下限的弯弯
4 群魔乱舞的皮鞭
5 如狼似虎的多边形
6 饥渴难耐的圈圈
7 眼缭乱的文字
8 Displaying the big end!
= = 終於結束了= = 截圖很累 = = !!! = = =
我觉得最后结局很像电影啊。
来一起研究一下咧
int Displaying_Big_End( Mat image, char* window_name, RNG rng )
{
//以下是在屏幕中心写字幕的准备工作
Size textsize = getTextSize("OpenCV forever!", CV_FONT_HERSHEY_COMPLEX, 3, 5, 0);
Point org((window_width - textsize.width)/2, (window_height - textsize.height)/2);
int lineType = 8;
//神秘的image2
Mat image2;
//无节操的255/2哦
for( int i = 0; i < 255; i += 2 )
{
/*
image2 是 image 和 Scalar::all(i) 的差。
事实上, image2 的每个像素都是 image 的每个像素减去 i
(对于每个像素,都是由R,G,B三个分量组成,每个分量都会独立做差)的差。
*/
image2 = image - Scalar::all(i);
//吐槽一下好美啊!!另外原来“负数”的通道值是黑色噢。。好神秘。。应该是这么理解吧
putText( image2, "OpenCV forever!", org, CV_FONT_HERSHEY_COMPLEX, 3,
Scalar(i, i, 255), 5, lineType );
imshow( window_name, image2 );
if( waitKey(DELAY) >= 0 )
{ return -1; }
}
return 0;
}
话说,這篇日誌寫好的時候,樓主被感動到了。
今晚好感动
听了人生第一场演唱会
张小贱&五月天 =3=
下一篇将会有大明星加入噢!!!