ZBLOG

c++ opencv 从一张1280x720原图,裁剪出两张小图拼接成一张图,通过图像的平移实现两个截图拼接

你可以使用OpenCV库来实现这个任务。下面是一个基本的示例代码,可以帮助你完成图像裁剪和拼接操作:

#include <opencv2/opencv.hpp>

int main() {
    // 读取原图
    cv::Mat originalImage = cv::imread("original_image.jpg");

    // 定义裁剪后图像的尺寸
    int croppedWidth = originalImage.cols / 2;
    int croppedHeight = originalImage.rows;

    // 定义两个感兴趣区域(ROI)矩形框
    cv::Rect roi1(0, 0, croppedWidth, croppedHeight);
    cv::Rect roi2(croppedWidth, 0, croppedWidth, croppedHeight);

    // 创建两个空白的输出图像,大小为裁剪后的尺寸
    cv::Mat croppedImage1(croppedHeight, croppedWidth, CV_8UC3);
    cv::Mat croppedImage2(croppedHeight, croppedWidth, CV_8UC3);

    // 裁剪并拷贝感兴趣区域到对应的输出图像中
    originalImage(roi1).copyTo(croppedImage1);
    originalImage(roi2).copyTo(croppedImage2);

    // 创建新的输出图像,大小为拼接后的尺寸
    int mergedWidth = croppedWidth * 2;
    int mergedHeight = croppedHeight;
    
	cv::Mat mergedImage(mergedHeight, mergedWidth, CV_8UC3);

	// 将两张小图拷贝到新的输出图像中
	croppedImage1.copyTo(mergedImage(cv::Rect(0, 0, croppedWidth, croppedHeight)));
	croppedImage2.copyTo(mergedImage(cv::Rect(croppedWidth, 0, croppedWidth, croppedHeight)));

	// 显示拼接后的图像
	cv::imshow("Merged Image", mergedImage);
	cv::waitKey(0);

    return 0;
}

请确保你已经安装了OpenCV库并将原始图像文件(名为original_image.jpg)放置在当前工作目录中。你可以根据需要调整裁剪尺寸和输出图像的大小。运行程序后,将会显示拼接后的图像。

注意:这只是一个基本示例,如果你有特定需求或更复杂的场景,可能需要进一步调整代码。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=17859

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?