广告
返回顶部
首页 > 资讯 > 精选 >OpenCV图像算法怎么实现图像切分图像合并
  • 785
分享到

OpenCV图像算法怎么实现图像切分图像合并

2023-06-30 23:06:55 785人浏览 独家记忆
摘要

本篇内容介绍了“OpenCV图像算法怎么实现图像切分图像合并”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!将一张图片切分成多个小图片并将小图

本篇内容介绍了“OpenCV图像算法怎么实现图像切分图像合并”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

将一张图片切分成多个小图片并将小图片合并为原图

最近用到一个功能,需要将一张原图切分成多个小图像,然后对小图像进行处理,处理之后再将其整合成一张大图像。达到对原图进行处理的目的,这样做的好处是将一个大任务划分为多个小任务,分别进行处理以节约时间(当然需要多线程进行协助,效果才会更明显)。

下面,就以2个模块进行介绍

图像切分

//用于存储切分后的小图像vector<Mat> imgs;//src:待切分原图像 splitCols:切分的每个小图像列数void imgSplit(Mat src,int splitCols){//设置分割后图像存储路径string outpath = ".\\split\\";int col = src.cols, row = src.rows;//切分后图像数量int sum = 0;//被整除if ((col%num == 0)){sum = col / num;//迭代器ceil_img存储子图像//vector<Mat> ceil_img;//迭代器name存储子图像的名字,从0到m*n-1vector<int> name;for (int i = 0; i < sum; i++){name.push_back(i);}Mat image_cut, roi_img, tim_img;//存储完整图像for (int i = 0; i < sum; i++){Rect rect(i*num, 0, num, row);image_cut = Mat(src, rect);roi_img = image_cut.clone();imgs.push_back(roi_img);}//写入到指定文件夹for (int i = 0; i < sum; i++){imwrite(outpath + to_string(long long((name[i]))) + ".jpg", imgs[i]);}}else //不能整除{sum = col / num + 1;//迭代器ceil_img存储子图像//vector<Mat> ceil_img;//迭代器name存储子图像的名字,从0到m*n-1vector<int> name;for (int i = 0; i < sum; i++){name.push_back(i);}Mat image_cut, roi_img, tim_img;//存储完整图像for (int i = 0; i < sum - 1; i++){Rect rect(i*num, 0, num, row);image_cut = Mat(src, rect);roi_img = image_cut.clone();imgs.push_back(roi_img);}//留余图像(因为有时候原图像总列数不能被整除,但又不能有损原图)Rect rect((sum - 1)*num, 0, col%num, row);image_cut = Mat(src, rect);roi_img = image_cut.clone();imgs.push_back(roi_img);//写入到指定文件夹for (int i = 0; i < sum; i++){imwrite(outpath + to_string(long long((name[i]))) + ".jpg", imgs[i]);}}}

图像合并

//按列合并两幅图像Mat mergeCols(Mat src1, Mat src2){int totalCols = src1.cols + src2.cols;Mat dst(src1.rows, totalCols, src1.type());Mat submat = dst.colRange(0, src1.cols);src1.copyTo(submat);submat = dst.colRange(src1.cols, totalCols);src2.copyTo(submat);return dst;}//多幅图像合并void imgMerge(){int imgSum = imgs.size();Mat dst = imgs[0];for (int i = 1; i < imgSum; i++){dst = mergeCols(dst, imgs[i]);}}

验证

执行下面代码可以验证(当然,你要根据自己的需求进行个别修改,比如切分后图像保存路径这些细节)

void split_mergeRun(){Mat src = imread("img.jpg");imgSplit(src, 100);imgMerge();}

“OpenCV图像算法怎么实现图像切分图像合并”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: OpenCV图像算法怎么实现图像切分图像合并

本文链接: https://www.lsjlt.com/news/331982.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • OpenCV图像算法怎么实现图像切分图像合并
    本篇内容介绍了“OpenCV图像算法怎么实现图像切分图像合并”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!将一张图片切分成多个小图片并将小图...
    99+
    2023-06-30
  • OpenCV图像算法实现图像切分图像合并示例
    目录将一张图片切分成多个小图片并将小图片合并为原图图像切分图像合并验证友情提示将一张图片切分成多个小图片并将小图片合并为原图 最近用到一个功能,需要将一张原图切分成多个小图像,然后对...
    99+
    2022-11-13
  • OpenCV 图像拼接和图像融合的实现
    目录基于SURF的图像拼接1.特征点提取和匹配2.图像配准3. 图像拷贝4.图像融合(去裂缝处理)基于ORB的图像拼接opencv自带的拼接算法stitch1.opencv stit...
    99+
    2022-11-12
  • OpenCV实现图像细化算法
    目录1.基础概念2.细化过程3.代码实现4.实验结果1.基础概念 图像细化(Image Thinning),一般指二值图像的骨架化(Image Skeletonization)的一种...
    99+
    2022-11-13
    OpenCV 图像细化
  • openCV实现图像分割
    本次实验为大家分享了openCV实现图像分割的具体实现代码,供大家参考,具体内容如下 一.实验目的 进一步理解图像的阈值分割方法和边缘检测方法的原理。 掌握图像基本全局阈值方法和最大...
    99+
    2022-11-12
  • OpenCV图像分割之分水岭算法与图像金字塔算法详解
    目录前言一、使用分水岭算法分割图像1、cv2.distanceTransform()函数2、cv2.connectedComponents()函数3、cv2.watershed()函...
    99+
    2022-11-12
  • python中opencv怎么实现图像叠加、图像融合、按位操作
    本篇内容介绍了“python中opencv怎么实现图像叠加、图像融合、按位操作”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!目录1图像叠加2...
    99+
    2023-06-20
  • OpenCV如何实现图像去噪算法
    今天小编给大家分享一下OpenCV如何实现图像去噪算法的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、函数参考1、Prim...
    99+
    2023-07-02
  • 基于OpenCV实现图像分割
    本文实例为大家分享了基于OpenCV实现图像分割的具体代码,供大家参考,具体内容如下 1、图像阈值化 源代码: #include "opencv2/highgui/highgui...
    99+
    2022-11-12
  • C++中怎么实现OpenCV图像分割与分水岭算法
    小编给大家分享一下C++中怎么实现OpenCV图像分割与分水岭算法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!分水岭算法是一种图像区域分割法,在分割的过程中,它...
    99+
    2023-06-15
  • OpenCV基于分水岭算法的图像分割怎么实现
    本文小编为大家详细介绍“OpenCV基于分水岭算法的图像分割怎么实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“OpenCV基于分水岭算法的图像分割怎么实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1. ...
    99+
    2023-07-05
  • C++中实现OpenCV图像分割与分水岭算法
    分水岭算法是一种图像区域分割法,在分割的过程中,它会把跟临近像素间的相似性作为重要的参考依据,从而将在空间位置上相近并且灰度值相近的像素点互相连接起来构成一个封闭的轮廓,封闭性是分水...
    99+
    2022-11-12
  • python opencv图像旋转怎么实现
    要在Python中使用OpenCV实现图像旋转,可以使用OpenCV中的getRotationMatrix2D和warpAffine...
    99+
    2023-10-21
    python
  • Python 深入了解opencv图像分割算法
    本文主要是基于Python Opencv 实现的图像分割,其中使用到的opencv的函数有: 使用 OpenCV 函数 cv::filter2D 执行一些拉普拉斯滤波以进行...
    99+
    2022-11-12
  • python中opencv图像叠加、图像融合、按位操作的具体实现
    目录1图像叠加 2图像融合 3按位操作 1图像叠加 可以通过OpenCV函数cv.add()或简单地通过numpy操作添加两个图像,res = img1 + img2.两个图像应该...
    99+
    2022-11-12
  • OpenCV 图像梯度的实现方法
    目录概述梯度运算礼帽黑帽Sobel 算子计算 x计算 y计算 x+y融合概述 OpenCV 是一个跨平台的计算机视觉库, 支持多语言, 功能强大. 今天小白就带大家一起携手走进 Op...
    99+
    2022-11-12
  • 基于Qt OpenCV怎么实现图像灰度化像素
    这篇文章主要介绍了基于Qt OpenCV怎么实现图像灰度化像素的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇基于Qt OpenCV怎么实现图像灰度化像素文章都会有所收获,下面我们一起来看看吧...
    99+
    2023-07-02
  • OpenCV图像梯度算子方法怎么使用
    本篇内容介绍了“OpenCV图像梯度算子方法怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.Sobel算子Sobel算子是一种图像...
    99+
    2023-07-05
  • Python中OpenCV图像平移怎么实现
    小编给大家分享一下Python中OpenCV图像平移怎么实现,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!每次学习新东西的时候,橡皮擦都是去海量检索,然后找到适合...
    99+
    2023-06-15
  • OpenCV图像的二值化怎么实现
    这篇“OpenCV图像的二值化怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“OpenCV图像的二值化怎么实现”文章吧...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作