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

结果如下图:

相关推荐
㓗冽5 分钟前
60题之内难题分析
开发语言·c++·算法
Dfreedom.7 分钟前
图像处理中的对比度增强与锐化
图像处理·人工智能·opencv·锐化·对比度增强
dingdingfish13 分钟前
Bash学习 - 第3章:Basic Shell Features,第5节:Shell Expansions
开发语言·学习·bash
rainbow688914 分钟前
C++开源库dxflib解析DXF文件实战
开发语言·c++·开源
deepxuan15 分钟前
Day7--python
开发语言·python
John_ToDebug17 分钟前
Chromium安全架构深度解析:从悬空指针检测到内存安全防御体系
c++·chrome
D_evil__25 分钟前
【Effective Modern C++】第五章 右值引用、移动语义和完美转发:24. 区分万能引用和右值引用
c++
禹凕30 分钟前
Python编程——进阶知识(多线程)
开发语言·爬虫·python
蜡笔小马43 分钟前
10.Boost.Geometry R-tree 空间索引详解
开发语言·c++·算法·r-tree
IOsetting43 分钟前
金山云主机添加开机路由
运维·服务器·开发语言·网络·php