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内;

结果如下图:

相关推荐
Cicada1287 分钟前
ccvt:一个用 Rust 写的中国地图坐标系互转命令行工具
开发语言·后端·rust
1001101_QIA11 分钟前
工控机网络配置
开发语言·数据库·php
程序员雷欧38 分钟前
ThreadPoolExecutor 深度解析:从核心参数到源码实现的全面剖析
java·开发语言·jvm
catchadmin44 分钟前
对标 npx 的 CPX PHP 的 Composer 包执行器
开发语言·php·composer
一位狮子座的程序员1 小时前
如何用RAG解决AI智能体的知识盲区?
开发语言·c#
吹什么轩1 小时前
c++复习:模拟实现list来更好的理解和应用list
开发语言·c++
小白学大数据1 小时前
Python 爬虫实战:抓取汽车之家二手车成交价格与里程数据
开发语言·爬虫·python·汽车
AmyLin_20011 小时前
PDF 色彩保真工程实践【5】核心实现(下):拼装 Image XObject、页面资源与内容流
c++·pdf·sdk·颜色空间·印刷·icc·cmyk
深盾科技_Virbox2 小时前
软件加密工具怎么选:试用验证、采购成本与授权范围
开发语言·安全·软件需求
A_cainiao_A2 小时前
C++20:std::stop_source让线程说停就听
开发语言·c++20