C++【Opencv】获取图片中,任意两点之间的所有点的

cpp 复制代码
#include <opencv2/opencv.hpp>
#include <iostream>
#include <opencv2/imgproc/types_c.h>

using namespace cv;
using namespace std;
int main()
{
    Mat Img = Mat(500, 500, CV_8UC1, cv::Scalar(0));
    Mat image = Mat(500, 500, CV_8UC1, cv::Scalar(50));
    Point A = Point(150, 150);
    Point B = Point(280, 280);
    LineIterator line_iter(image, A, B);
    vector<Point> v_pnts;
    v_pnts.reserve(line_iter.count + 2);
    for (int i = 0; i < line_iter.count; ++i, ++line_iter)
    {
        v_pnts.emplace_back(line_iter.pos());
    }
    v_pnts.emplace_back(A);
    v_pnts.emplace_back(B);

    for (int i = 0; i < v_pnts.size(); i++)
    {
        Img.at<uchar>(v_pnts[i]) = 255;
    }

    
    imshow("image_color123", Img);
    Mat image_color = image.clone();



    cvtColor(image_color, image_color, CV_GRAY2BGR);
    for (const auto& kn : v_pnts)
    {
        image_color.ptr<Vec3b>(kn.y)[kn.x] = Vec3b(0, 0, 255);
    }
    imshow("image_color", image_color);
    waitKey();
    return 0;
}

所有的坐标顶点都存放在vector v_pnts内;

结果如下图:

相关推荐
Lyndon-李大鹏1 小时前
QT-VS环境
开发语言·qt
微学AI1 小时前
内网穿透的应用-把飞牛NAS变成家庭录像中心:EasyNVR部署与远程回放实战
开发语言·php
峥嵘life1 小时前
Android WiFi连接过程 wpa_supplicant 日志分析
android·开发语言·php
BerryS3N1 小时前
深度解析:从零构建生产级大模型 RAG(检索增强生成)系统全栈指南
开发语言·python·ai
今儿敲了吗2 小时前
Python——函数基础
开发语言·笔记·python
CHANG_THE_WORLD2 小时前
深入理解递归:从函数调用到调用栈的完整执行过程
java·开发语言·算法
kels88992 小时前
单连接动态增减订阅:股票行情API后端降负载实战方案
开发语言·笔记·python·信息可视化·金融
一拳一个呆瓜3 小时前
【STL】iostream 编程:使用提取运算符
c++·stl
a4493153623 小时前
MacBook USB-C不充电故障诊断:从PD握手到主板供电链路
c语言·开发语言·macos·电脑
德福危险3 小时前
从目录枚举到bash破壳漏洞、从流量抓包到组权限提权:靶机练习之symfonos3
开发语言·bash