OpenCV通过指针裁剪图像

OpenCV 中mat 格式的像素数值都是连续排列的。为了深入了解cuda 编程。我们来写一个简单的小程序测试一下。

1 不裁剪

cpp 复制代码
 cv::Mat crop_image(int(height), int(width), CV_8UC3, image.data);

2 只保留图像1/3

cpp 复制代码
cv::Mat crop_image(int(height/3), int(width), CV_8UC3, image.data);

3 每行错开一个像素

cpp 复制代码
cv::Mat crop_image(int(height), int(width-1), CV_8UC3, image.data);

.

4 .全部代码

cpp 复制代码
#include <opencv2/opencv.hpp> // 包含OpenCV的主要头文件
#include <iostream>
#include <direct.h> 
int main() 
{
    cv::Mat image; // 创建一个Mat对象来存储图像
    char runPath[1024] = { 0 };
    image = cv::imread("mountain.png", cv::IMREAD_COLOR); // 读取图片
    if (image.empty()) 
    { // 检查图片是否成功加载
        std::cout << "Could not open or find the image\n";
        return -1;
    }
    cv::namedWindow("src_image", cv::WINDOW_AUTOSIZE); // 创建一个窗口
    std::cout <<"image size: "<< image.size() << std::endl;
    int width = image.cols;
    int height = image.rows;
    std::cout << "x: " << image.cols << std::endl;
    std::cout <<"y: "<< image.rows << std::endl;
    cv::Mat crop_image(int(height/3), int(width), CV_8UC3, image.data);
    cv::imshow("src_image", image); // 在窗口中显示图片
    cv::waitKey(0); // 等待按键事件,0表示无限期等待   
    cv::imshow("crop", crop_image); // 在窗口中显示图片
    cv::waitKey(0); // 等待按键事件,0表示无限期等待   
       
    _getcwd(runPath, sizeof(runPath));
    std::cout<<"running path" << runPath << std::endl;

    return 0;
}
相关推荐
远洋录14 分钟前
Vue 开发者的 React 实战指南:组件设计模式篇
前端·人工智能·react
好评笔记37 分钟前
多模态论文笔记——BLIP
论文阅读·人工智能·深度学习·aigc·transformer·blip·clip
青春~飞鸟39 分钟前
ISP流程--去马赛克详解
图像处理·计算机视觉
confiself40 分钟前
大模型系列——推理能力增强 rStar-Math 论文笔记
人工智能·深度学习
阿里云大数据AI技术1 小时前
阿里云 AI 搜索方案解读:大模型驱动下的智能搜索,助力企业数字化转型
人工智能·阿里云·云计算
Anna_Tong1 小时前
阿里云Qwen系列大模型:多领域AI应用的创新利器
人工智能·阿里云·语言模型·云计算
深图智能1 小时前
OpenCV的TIF红外可见光融合算法
图像处理·人工智能·python·opencv·算法·计算机视觉
羑悻的小杀马特1 小时前
【Artificial Intelligence篇】AI 入侵家庭:解锁智能生活的魔法密码,开启居家梦幻新体验
c++·人工智能·生活
JINGWHALE12 小时前
设计模式 行为型 访问者模式(Visitor Pattern)与 常见技术框架应用 解析
前端·人工智能·后端·设计模式·性能优化·系统架构·访问者模式
西猫雷婶3 小时前
python学opencv|读取图像(三十一)缩放图像的三种方法
开发语言·python·opencv