人工智能→计算机视觉经典入门趣味程序实现:图像读取、形状特征提取、在三维坐标系建模读取二维图像形状趣味启蒙(智能助手AGI加持DeepSeek/ChatGPT/文心一言/通义千问/豆包/腾讯元宝等)

今天我们来完成一个视觉领域有趣的基本入门级必备的功能程序开发(该程序之于视觉领域入门就好比“Hello world!”之于计算机编程入门):程序实现输入Input一张图像,输出Output该图像提取的形状特征,图像是RGB图,提取的图像形状特征表示是二维像素坐标特征;并且我们大家考虑一个问题就是如何将提取的二维像素坐标特征在三维领域读取出来。读者们,这就是一个入门级但是极为经典的如何读取一张图像,并且提取图像的形状特征,以往的帖子中到这里已经完成了,我们现在多考虑一步就是图像的二维像素坐标数据如何与立体三维点云数据进行转换的方法,因为随着人工智能AI的技术演进很多应用场景对计算机视觉领域的应用需求已经不仅仅只是满足一个二维的图像特征提取了,有一些场景还需要视觉提供三维特征尤其是Z轴深度特征值,鉴于这个实际情况我们就在这个初学的入门程序里面增添一个功能就是将提取的二维坐标序列通过设置特定Z平面的方式扩展到三维坐标系,当然实际的二维到三维是有专门的三维重建立体几何数学计算原理得来的,那个讲起来就海量知识了,本帖子只是启蒙性质的用通俗视角的浅显的来解读这从一/二维到三维的奥秘,让初学者就能窥测视觉一二三维的整体框架,由此有助于读者们后续学习过程中便于通向攀登珠峰的山脚小径。
借助于当前最流行的人工智能AGI通用/专用助手明星产品(例如DeepSeek/ChaGPT/文心一言/通义千问/豆包/腾讯元宝等)的辅助科研智能助手,我得以较快的保质保量的完成该部分工作。我们先写一个算法程序:实现输入一张图像Img,输出图像蛇的形状特征:形状特征提取包括边缘特征,并且保存为二维像素坐标点序列vector<vector> contours到文件中。

#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv; 
using namespace std;
 //定义提取输入图像形状特征函数
Mat extractBodyContour(const Mat& image) {
   
    Mat gray, blurred, edges, contourImage;
    
    // 转换为灰度图
    cvtColor(image, gray, COLOR_BGR2GRAY);
    // 高斯模糊
    GaussianBlur(gray, blurred, Size(5, 5), 0);
    // Canny边缘检测
    Canny(blurred, edges, 50, 150); 
    // 查找人体形态
    vector<vector<Point>> contours;
    findContours(edges, contours, RETR_EXTERNAL, CHAIN_APPROX_SIMPLE);
    // 创建空白图像
    contourImage = Mat::zeros(image.size(), image.type());
   // 绘制白色形态特征 (Scalar(255, 255, 255) 是白色)
   drawContours(contourImage, contours, -1, Scalar(255, 255, 255), 2
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值