c++画出分割图像,水平线和垂直线

这篇具有很好参考价值的文章主要介绍了c++画出分割图像,水平线和垂直线。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、pca 找到图像某个区域的垂直线,并画出来

    // 1、 斑块的框+ 血管二值化图,pca 找到垂直血管壁的直线,  还是根据斑块找主轴方向吧
    // Step 1: 提取斑块左右范围内的血管像素点坐标,
    std::vector<cv::Point> points;
    for (int y = 0; y < binaryVessel.rows; y++) {
        for (int x = x1; x <= x2; x++) {
            if (binaryVessel.at<uchar>(y, x) == 255) {
                points.push_back(cv::Point(x, y));
            }
        }
    }

    if (points.empty()) {
        std::cout << "====================>error No valid pixels in the specified range.  斑块附近的血管分割区域不存在,结束函数功能 " << std::endl;
        return;

    }

    // 转换为 cv::Mat 格式
    cv::Mat pointsMat(points.size(), 2, CV_32F);
    for (int i = 0; i < points.size(); i++) {
        pointsMat.at<float>(i, 0) = points[i].x;
        pointsMat.at<float>(i, 1) = points[i].y;
    }

    // Step 2: 使用 PCA  获取垂直线段斜率,感觉有点异常,不要了,改成用最小外接矩形
    // binaryPlaque    pointsMat
    cv::PCA pca(pointsMat, cv::noArray(), cv::PCA::DATA_AS_ROW);

    // Step 3: 获取主成分(直线的方向)和主成分对应的直线上的点
    cv::Mat directions = pca.eigenvectors;
    cv::Mat linePoints = pca.mean;

    // Step 4: 计算垂直线的斜率和截距
    float kVertical = -directions.at<float>(0,0) / directions.at<float>(0,1);
    float interceptHorizontal = linePoints.at<float>(0, 1) - kVertical * linePoints.at<float>(0, 0);


    // Step 5: 绘制垂直线
    float x;
    cv::Mat image22;  // 存储处理后的图像
    cv::cvtColor(binaryVessel, image22, cv::COLOR_GRAY2BGR);  // binaryVessel 转换为彩色图像  image22,存储
    for (int i = 0; i < image22.cols; i++) {
        x = static_cast<float>(i);
        float yVertical = kVertical * x + interceptHorizontal;
        cv::circle(image22, cv::Point(static_cast<int>(x), static_cast<int>(yVertical)), 1, cv::Scalar(0, 255, 0), -1);
    }
    cv::imwrite("/home/hebin/Desktop/shiyuanyin/image2.png", image22);  // 保存画图的直线

c++画出分割图像,水平线和垂直线,c++,opencv,开发语言文章来源地址https://www.toymoban.com/news/detail-624570.html

2、使用最小外接矩形的框,来找到水平线和垂直线

到了这里,关于c++画出分割图像,水平线和垂直线的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序23__flex布局 相关的3种居中: 水平居中_垂直居中_水平垂直居中

    类似这样写法 display:  flex; flex-direction:  column;                //垂直布局 align-items:  center;                    // 水平居中     justify-content:  space-around; //垂直方向分散布局 类似这样写法 display:  flex; flex-direction: row;          //水平布局       align-items: center;    

    2024年02月03日
    浏览(34)
  • 水平越权&垂直越权

    1、水平越权-同级用户权限共享 2、垂直越权-低高用户权限共享 3、访问控制-验证丢失取消验证脆弱验证 4、脆弱验证-CookieTokenJwt等 水平越权 就是同级用户之间的越权,打个比方现在有ABC三个用户,A是管理员,BC都是普通用户,现在B能够使用C这个用户的权限这就是水平越权

    2024年02月04日
    浏览(40)
  • 居中一个元素(水平+垂直居中)

    我们的示例代码全在此基础上修改: 具体原理参考下面这篇博客: flex 弹性布局_本郡主是喵的博客-CSDN博客 对于内容是 行内式元素(内容大小撑起标签宽高)或文字, 是有效的。 line-heignt == height ,能使文字垂直对齐,text-align:center,能使内容居中水平对齐 父元素,采用相对布局,

    2024年02月11日
    浏览(28)
  • 水平越权、垂直越权、防范措施

    一、越权简介 越权 :权限控制功能设计存在缺陷,攻击者就可以通过这些缺陷来访问未经授权的功能或数据。基于数据的访问控制设计缺陷引起。 越权 : 水平越权 、 垂直越权 二、水平越权 水平越权 : 权限相等者互相越权 。 A账号和B账号都可以访问这个功能,但是A账号

    2024年02月09日
    浏览(31)
  • CSS水平垂直居中

    1.利用定位 + margin:auto 2.flex布局 3.grid布局 一、利用position+margin:auto  二、利用flex 三、gird布局

    2024年02月14日
    浏览(35)
  • 块、行内块水平垂直居中

    1.定位实现水平垂直居中 2.定位+位移 3.相对于整个视口水平垂直居中 4.flex+margin   5. flex 水平垂直居中 6.遮挡层

    2024年02月13日
    浏览(28)
  • 水平越权与垂直越权

    越权,顾名思义,就是超出了权限或权力范围。多数WEB应用都具备权限划分和控制,但是如果权限控制功能设计存在缺陷,那么攻击者就可以通过这些缺陷来访问未经授权的功能或数据,这就是我们通常说的越权漏洞。攻击者越权后就可以进行一些操作,例如查看敏感信息、

    2023年04月11日
    浏览(32)
  • 垂直分表、水平分表详解

    什么是垂直分表 垂直分表就是把一张表按列分为多张表,多张表通过主键进行关联,从而组成完整的数据。 分表之后,每张表的结构都不相同。 垂直分表不需要额外引用其他组件,需要到Repository层面建立好表映射即可。 根据什么分表呢? 根据数据是否是热点数据划分。

    2024年02月08日
    浏览(32)
  • CSS 水平垂直居中的方式

    目录 在不知道子元素宽高的情况下,水平垂直居中的六种方式: 1、弹性盒子布局方式来实现(flex)。  2、绝对定位 + transform 3、table标签 4、display:table-cell 5、display: grid 6、writing-mode 属性 在实际使用最好测试下最低版本是否支持对应的实现方式,尽量选各个浏览器支持比

    2024年02月08日
    浏览(45)
  • uniapp 页面元素水平垂直居中

    在uniapp中如何让一个源码在页面中水平垂直居中?可添加如下操作: 在App.vue添加如下代码设置页面宽度100%显示 在你要居中的页面添加 效果如下

    2024年02月15日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包