opencv中文文档

opencv中文文档


OpenCV中的绘图功能

<h1>目标</h1> <ul> <li>学习用OpenCV绘制不同的几何图形</li> <li>您将学习这些函数:cv.line()、cv.circle()、cv.rectangle()、cv.ellipse()、cv.putText()等。</li> </ul> <h1>代码</h1> <p>在上述所有函数中,你会看到一些常见的参数如下:</p> <ul> <li>img :要绘制图形的图像</li> <li>color :图形的颜色。对于BGR,将其作为元组传递,例如:(255,0,0)对于blue。对于灰度,只需传递标量值。</li> <li>thickness :线或圆等的厚度。如果-1被传递给封闭的图形,例如圆圈,它将填充形状。默认厚度= 1行</li> <li>lineType :线的类型,是否为8连通,抗锯齿线等。默认情况下,它是8连接的。cv.LINE_AA提供了反锯齿线,这对于曲线来说非常棒。</li> </ul> <h2>画线</h2> <p>要画一条直线,你需要传递直线的起始坐标和结束坐标。我们将创建一个黑色的图像,并在其上从左上角到右下角画一条蓝线。</p> <pre><code class="language-python">import numpy as np import cv2 as cv # Create a black image img = np.zeros((512,512,3), np.uint8) # Draw a diagonal blue line with thickness of 5 px cv.line(img,(0,0),(511,511),(255,0,0),5)</code></pre> <h2>画矩形</h2> <p>要绘制矩形,您需要矩形的左上角和右下角。这次我们将在图像的右上角绘制一个绿色矩形。</p> <pre><code class="language-python">cv.rectangle(img,(384,0),(510,128),(0,255,0),3)</code></pre> <h2>画圆</h2> <p>要画一个圆,你需要它的中心坐标和半径。我们将在上面画的矩形内画一个圆。</p> <pre><code class="language-python">cv.circle(img,(447,63), 63, (0,0,255), -1)</code></pre> <h2>画椭圆</h2> <p>要绘制椭圆,我们需要传递几个参数。一个参数是中心位置(x,y)。下一个参数是轴长(长轴,短轴)。角是椭圆逆时针方向旋转的角度。起始角和结束角表示从主轴顺时针方向测量的椭圆圆弧的起始和结束。也就是说,给定值0和360表示整个椭圆。要了解更多细节,请查看cv.ellipse()的文档。下面的例子在图像的中心绘制了一个半椭圆。</p> <pre><code class="language-python">cv.ellipse(img,(256,256),(100,50),0,0,180,255,-1)</code></pre> <h2>绘制多边形</h2> <p>要绘制多边形,首先需要顶点的坐标。将这些点组成一个形状为ROWSx1x2的数组,其中行是顶点的数量,类型应该为int32。这里我们用黄色画了一个有四个顶点的小多边形。</p> <pre><code class="language-python">pts = np.array([[10,5],[20,30],[70,20],[50,10]], np.int32) pts = pts.reshape((-1,1,2)) cv.polylines(img,[pts],True,(0,255,255))</code></pre> <h4>注意</h4> <pre><code>如果第三个参数是False,您将得到一个连接所有点的折线,而不是一个闭合的形状。 polylines()可以用来绘制多条线。只需创建一个要绘制的所有线条的列表,并将其传递给函数。所有的线将单独绘制。绘制一组直线的方法比为每一行调用cv.line()好得多,速度也快得多。</code></pre> <h2>添加文字到图像:</h2> <p>要将文本放到图像中,您需要指定以下内容。</p> <ul> <li>要写入的文本数据</li> <li>位置坐标的地方,你想把它(即左下角的数据开始)。</li> <li>字体类型(检查cv.putText()文档是否支持字体)</li> <li>字体比例(指定字体的大小)规则的东西,如颜色,厚度,行类型等。为了更好地看,推荐使用lineType = cv。LINE_AA。</li> </ul> <p>我们将用白色在图像上写OpenCV。</p> <pre><code class="language-python">font = cv.FONT_HERSHEY_SIMPLEX cv.putText(img,'OpenCV',(10,500), font, 4,(255,255,255),2,cv.LINE_AA)</code></pre> <h2>结果</h2> <p>现在是时候看看我们的最终结果了。正如您在前几篇文章中学习的,显示图像来查看它。</p> <p><img src="https://www.showdoc.cc/server/api/common/visitfile/sign/81918363f92cd73c4ab6b06f75860c92?showdoc=.jpg" alt="" /></p> <h1>练习</h1> <p>尝试使用OpenCV中的绘图功能创建OpenCV的徽标。</p>

页面列表

ITEM_HTML