宁波网站建设设计图jsp做的网站带数据库

当前位置: 首页 > news >正文

宁波网站建设设计图,jsp做的网站带数据库,如何做网站拉动条,如何做电影网站赚钱吗基本概念 图像轮廓 主要针对二值图像#xff0c;轮廓是一系列点 vectorvectorPointxxx用于存储多个点 vectorVec4ixxx包含四个整数#xff0c;分别代表下一个轮廓的索引#xff0c;上一个轮廓的索引#xff0c;一个子轮廓的索引和父轮廓的索引 相…基本概念 图像轮廓 主要针对二值图像轮廓是一系列点 vectorvectorPointxxx用于存储多个点 vectorVec4ixxx包含四个整数分别代表下一个轮廓的索引上一个轮廓的索引一个子轮廓的索引和父轮廓的索引 相关API

  1. 功能基本描述 • findContours函数的主要目的是在二值图像中找到物体的轮廓。比如你有一张简单的黑白图像黑色部分是背景白色部分是一个圆形。这个函数就能找到这个圆形的轮廓也就是圆形和背景的边界。
  2. 参数一般解释 • 输入图像必须是单通道的二值图像。这是因为函数需要明确地区分物体和背景。例如图像像素值为0表示背景255表示物体这样函数才能沿着物体和背景的边界去寻找轮廓。 • 轮廓存储容器用来接收找到的轮廓信息。假设你要在一个包含多个形状的图像中找到所有形状的轮廓这个容器就会把每个形状的轮廓点信息都存储起来每个轮廓是一系列的点。 • 层次结构容器用于记录轮廓之间的层次关系。例如在一幅有大矩形里面套着小矩形的图像中大矩形和小矩形的轮廓是有层次关系的这个容器就存储这种关系像是小矩形轮廓属于大矩形轮廓内部这种信息。 • 检索模式不同的检索模式有不同的用途。例如除了RETR_TREE模式外还有RETR_EXTERNAL模式。RETR_EXTERNAL模式只查找最外层的轮廓适用于只关心图像中最外面物体轮廓的情况比如在只需要找到图像中最大物体的外边界时就很有用。 {
  3. RETR_EXTERNAL • 含义只检索最外层的轮廓。例如在一幅包含多个嵌套形状如一个大圆形里面有小圆形的图像中它只会找到大圆形的轮廓而忽略内部小圆形的轮廓。 • 应用场景当你只关心图像中最主要物体的外边界或者想排除内部细节时很有用。比如在对一张有很多小图案的商标图片进行处理时只想找到商标的外轮廓就可以使用这种模式。
  4. RETR_LIST • 含义检索所有轮廓但不建立任何层次关系。所有轮廓都被看作是在同一层次上没有父子、嵌套等关系。 • 应用场景适用于不需要考虑轮廓之间层次结构只是简单地想要获取所有轮廓信息的情况。例如在统计图像中所有独立形状的数量并且不关心它们是否嵌套时可以使用。
  5. RETR_CCOMP • 含义检索所有轮廓并将它们组织成两级层次结构。顶层是外轮廓第二层是内轮廓洞。例如在一个有空心形状的图像中它能区分出外部轮廓和内部的空心部分轮廓。 • 应用场景用于处理有简单嵌套关系如空心图形的图像并且只需要区分外层和内层轮廓这种两级层次的情况。
  6. RETR_TREE • 含义检索所有轮廓并建立完整的层次结构。它可以表示复杂的轮廓关系包括嵌套、相邻等多种情况。像在有多个形状相互嵌套、包含多个层次的复杂图像中能很好地描述轮廓之间的关系。 • 应用场景适用于需要详细分析轮廓之间复杂关系的情况如在对具有多个嵌套图形的工程图纸进行分析或者对包含复杂形状的自然场景图像进行处理时。 } • 轮廓近似方法可以选择不同的近似方式来简化轮廓信息。比如CHAIN_APPROX_NONE模式会存储轮廓上的所有点而CHAIN_APPROX_SIMPLE模式会对轮廓进行简化像直线部分只保留端点这样可以减少存储轮廓所需的数据量同时又能保持轮廓的基本形状。 {
  7. CHAIN_APPROX_NONE • 含义存储轮廓上的所有点。这种方法会精确地记录轮廓经过的每一个像素点不会对轮廓进行任何简化。 • 应用场景在需要高精度地描绘轮廓或者后续操作对轮廓细节要求极高的情况下使用。例如对于一些需要精确测量轮廓长度且轮廓形状不规则、细节丰富的图像使用这种方法可以保留完整的轮廓信息。
  8. CHAIN_APPROX_SIMPLE • 含义压缩水平、垂直和对角线段只保留它们的端点。这是一种常用的近似方法它可以在不丢失轮廓基本形状的前提下大大减少存储轮廓所需的数据量。 • 应用场景适用于大多数情况特别是当轮廓中有较多直线段时。例如在处理简单几何形状如矩形、三角形或者具有明显直线边界的物体轮廓时这种方法既能有效表示轮廓又能减少数据存储和后续处理的复杂度。
  9. CHAIN_APPROX_TC89_L1和CHAIN_APPROX_TC89_KCOS • 含义这两种方法是使用 Teh - Chin 链近似算法的不同形式。它们也是对轮廓进行近似但具体的近似方式是基于特定的数学算法。 • 应用场景在一些对轮廓近似精度有特殊要求且希望通过特定算法来实现近似的情况下可以使用。不过相对来说这两种方法在日常应用中没有前两种那么普遍。 } • 偏移量用于对轮廓的位置进行调整。例如如果需要将找到的轮廓在图像中的位置整体向右和向下移动一定的像素量就可以通过设置这个偏移量来实现。 drawContours是 OpenCV 中的一个函数用于在图像上绘制轮廓。
  10. 功能描述 • 它可以将找到的轮廓以特定的颜色、线宽等属性绘制在给定的图像上使得轮廓在图像中清晰可见方便用户进行可视化分析和处理。
  11. 参数解释 • 图像参数第一个参数是要在其上绘制轮廓的图像通常是一个Mat对象。 • 轮廓容器参数第二个参数是包含要绘制轮廓的容器一般是vectorvectorPoint类型每个内部的向量表示一个轮廓由一系列的点组成。 • 轮廓索引参数第三个参数可以是一个整数索引或者特殊值如 -1。如果是整数索引则只绘制指定索引对应的轮廓如果是 -1则绘制所有的轮廓。 • 颜色参数第四个参数是一个Scalar对象用于指定绘制轮廓的颜色。例如Scalar(0, 0, 255)表示红色Scalar(255, 0, 0)表示蓝色等。 • 线宽参数第五个参数指定绘制轮廓的线宽。较大的值会使轮廓线更粗较小的值则使轮廓线更细。 • 连接方式参数第六个参数一般情况下不太常用它指定了轮廓如何连接线段不同的值可能会有不同的连接效果但一般使用默认值即可。 #includeopencv2/opencv.hpp #includeiostream using namespace cv; using namespace std; int main(int argc, char** argv) {     Mat sgv,stu,sbt;     Mat stv imread(C:/newword/image/3.png);     if (stv.empty()) {         printf(no pc);         return -1;     }     namedWindow(abc, WINDOW_AUTOSIZE);     imshow(abc, stv);          GaussianBlur(stv,sgv,Size(3,3),0);     cvtColor(sgv, sbt, COLOR_BGR2GRAY);     threshold(sbt, stu, 0, 255, THRESH_BINARY | THRESH_OTSU);     vectorvectorPointcontours;     vectorVec4ihierarchy;     findContours(stu, contours, hierarchy, RETR_TREE, CHAIN_APPROX_SIMPLE, Point());     drawContours(stv, contours, -1, Scalar(0, 0, 255), 2, 8); //    for (size_t t 0; t contours.size(); t) {     drawContours(stv, contours, t, Scalar(0, 0, 255), 2, 8); }     imshow(asdd, stv);     waitKey(0);     destroyWindow;     return 0; }