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

结果如下图:

相关推荐
bubiyoushang8883 分钟前
基于MATLAB的自然图像梯度分布重尾特性验证方案
开发语言·matlab
MSTcheng.22 分钟前
【C++STL】priority_queue 模拟实现与仿函数实战
开发语言·c++
还有几根头发呀31 分钟前
从 C++ 的角度,系统地解释 进程(Process)、线程(Thread)、协程(Coroutine) 的概念、原理、优缺点,以及常见应用场景。
c++
oioihoii35 分钟前
Python与C++:从哲学到细节的全面对比
c++
小年糕是糕手40 分钟前
【C++】C++入门 -- inline、nullptr
linux·开发语言·jvm·数据结构·c++·算法·排序算法
Mrliu__41 分钟前
Opencv(十五) : 图像梯度处理
人工智能·opencv·计算机视觉
郝学胜-神的一滴44 分钟前
Python中一切皆对象:深入理解Python的对象模型
开发语言·python·程序人生·个人开发
kk哥88991 小时前
Keil MDK 5.39 编程 + 调试 ,ARM 嵌入式开发!如何安装
c++·arm
重启的码农1 小时前
enet源码解析 (2) 对等节点 (ENetPeer)
c++·网络协议
csbysj20201 小时前
JSP 隐式对象
开发语言