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

电子商务网站主要功能互联网营销怎么做

电子商务网站主要功能,互联网营销怎么做,北京大学网站建设,呼和浩特网站设计公司个人理解为将一幅不规则的图形,通过最轮廓发现,最大轮廓匹配来确定图像的位置,再通过pt将不规则的图像放在规定的矩形里面,在通过透视变换将不规则的图形放进规则的图像中。 1. findHomography 函数 • Mat h findHomography(s…

个人理解为将一幅不规则的图形,通过最轮廓发现,最大轮廓匹配来确定图像的位置,再通过pt将不规则的图像放在规定的矩形里面,在通过透视变换将不规则的图形放进规则的图像中。

1. findHomography 函数

• Mat h = findHomography(srcPts, dstPts, RANSAC);

• 功能:该函数用于计算从源点集 srcPts 到目标点集 dstPts 的单应性矩阵 h。单应性矩阵描述了两个平面之间的投影变换关系。

• 参数:

• srcPts:源图像中的点集,是一个 std::vector<cv::Point2f> 类型的向量,包含至少4个点。这些点在源图像平面上定义了一个区域。

• dstPts:目标图像中的对应点集,同样是 std::vector<cv::Point2f> 类型,与 srcPts 中的点一一对应。它定义了源图像区域要映射到的目标图像区域。

• RANSAC:这是一种稳健的估计方法,称为随机抽样一致算法(Random Sample Consensus)。使用 RANSAC 时,函数会通过多次随机抽样来估计单应性矩阵,并排除可能的误匹配点,从而得到更准确可靠的单应性矩阵。

• 返回值:返回一个 cv::Mat 类型的单应性矩阵 h,它是一个 3x3 的矩阵,用于后续的透视变换。如果无法找到合适的单应性矩阵(例如点集数量不足或匹配质量太差),返回的矩阵将是一个空矩阵。

2. warpPerspective 函数

• warpPerspective(image, dst, h, Size(600, 800));

• 功能:根据给定的单应性矩阵 h 对输入图像 image 进行透视变换,并将结果存储在 dst 中。透视变换可以将图像从一个平面投影到另一个平面,常用于纠正图像的透视畸变、图像拼接等任务。

• 参数:

• image:输入的源图像,是一个 cv::Mat 类型的对象。

• dst:输出的目标图像,也是 cv::Mat 类型。在调用函数前,不需要对其进行初始化,函数会根据变换结果自动分配内存。

• h:前面通过 findHomography 函数计算得到的单应性矩阵,它决定了图像如何进行透视变换。

• Size(600, 800):指定输出图像 dst 的大小,这里宽为600像素,高为800像素。变换后的图像会被调整到这个尺寸。

这两行代码在图像变换处理中是非常关键的步骤,先计算单应性矩阵,再基于此矩阵对图像进行透视变换,从而实现将源图像的特定区域映射到目标图像的指定区域。



#include <opencv2/opencv.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main(int argc, char** argv) {
    // Mat image = imread("D:/images/butterfly.jpg");
    Mat image = imread("C:/newword/image/31.jpg");
        Mat gray, binary;
    cvtColor(image, gray, COLOR_BGR2GRAY);
    threshold(gray, binary, 0, 255, THRESH_BINARY | THRESH_OTSU);

    vector<vector<Point>> contours;
    vector<Vec4i> hierachy;
    findContours(binary, contours, hierachy, RETR_EXTERNAL, CHAIN_APPROX_SIMPLE);
    int index = -1;
    double max = -1;
    for (int i = 0; i < contours.size(); i++) {
        double area = contourArea(contours[i]);
        if (area > max) {
            max = area;
            index = i;
        }
    }
    drawContours(image, contours, index, Scalar(0, 255, 0), 2, 8);

    Mat approxCurves;
    vector<Point2f> srcPts;
    approxPolyDP(contours[index], approxCurves, 100, true);
    for (int i = 0; i < approxCurves.rows; i++) {
        Vec2i  pt = approxCurves.at<Vec2i>(i, 0);//0代表着索引值,访问坐标
        std::cout << pt << std::endl;
        srcPts.push_back(Point2f(pt[0], pt[1]));
        circle(image, Point(pt[0], pt[1]), 12, Scalar(0, 0, 255), 2, 8, 0);
    }
    vector<Point2f> dstPts;
    dstPts.push_back(Point2f(0, 0));
    dstPts.push_back(Point2f(0, 800));
    dstPts.push_back(Point2f(600, 800));
    dstPts.push_back(Point2f(600, 0));
    imshow("轮廓", image);
    imwrite("C:/newword/result_c1c.png", image);

    Mat h = findHomography(srcPts, dstPts, RANSAC);
    Mat dst;
    warpPerspective(image, dst, h, Size(600, 800));
    imwrite("C:/newword/dst.p1ng", dst);
    waitKey(0);
    return 0;
}

http://www.rdtb.cn/news/16941.html

相关文章:

  • 网站外链可以在哪些平台上做外链网上店铺的推广方法有哪些
  • 教做游戏的网站seo教程seo官网优化详细方法
  • 德州网站建设400办理深圳的seo网站排名优化
  • wordpress 主题域名授权惠州百度seo
  • 关键词优化哪个好seo新手入门教程
  • 网站诚信认证怎么做seo网络搜索引擎优化
  • 兰州网站seo收费软文宣传
  • 自己做网站百度会收录合肥网站快速排名提升
  • 自己怎么做新闻开头视频网站网络营销的主要内容有哪些
  • 做最好的赚钱网站十大跨境电商erp排名
  • 美国做按摩广告的网站学习软件的网站
  • 有哪些做批发出口的网站企业优化推广
  • 网站都是程序员做的吗seo是什么seo怎么做
  • flash下载网站推广普通话手抄报简单又好看
  • 怎样制作个人网站怎么请专业拓客团队
  • 网站关键词google优化怎么做搜索引擎在线
  • 自己公司做网站百度首页关键词推广
  • 辽宁千山科技做网站怎么样前端seo怎么优化
  • 网站架构图怎么画百度seo最成功的优化
  • 做个网站找别人做的吗产品推广方式
  • 做电影网站合法吗列举五种网络营销模式
  • 龙岗平湖网站开发成人短期技能培训
  • 中国有多少网站有多少域名必应搜索推广
  • 装修网站怎么做的好怎样建立网站平台
  • 598网站建设qq代刷网站推广
  • 公司网站源码 带wap手机站福建seo
  • 做网站除了买域名还有什么百度客服中心电话
  • 贵阳建站推广公司免费观看行情软件网站下载
  • 汉口制作网站百度seo灰色词排名代发
  • 游戏网站开发毕业论文开题报告网页设计培训教程