当使用OpenCV处理图像时,有时需要将多张图片进行拼接,这时可以使用C++实现OpenCV图像横向/纵向拼接。
以下是实现OpenCV图像横向拼接的步骤:
1. 加载图像
Mat img1 = imread("image1.jpg");
Mat img2 = imread("image2.jpg");
2. 保证两张图片高度相等
为了使图像在横向拼接时的高度保持一致,需要将两张图片的高度调整成相同的高度。代码如下:
if (img1.rows != img2.rows) {
resize(img1, img1, Size(img2.cols, img2.rows));
}
3. 横向拼接图片
调用 hconcat
函数将两张图片进行横向拼接。代码如下:
Mat result;
hconcat(img1, img2, result);
以上就是实现OpenCV图像横向拼接的全部步骤,最后将拼接结果 result
写入文件即可。
以下是实现OpenCV图像纵向拼接的步骤:
1. 加载图像
Mat img1 = imread("image1.jpg");
Mat img2 = imread("image2.jpg");
2. 保证两张图片宽度相等
为了使图像在纵向拼接时的宽度保持一致,需要将两张图片的宽度调整成相同的宽度。代码如下:
if (img1.cols != img2.cols) {
resize(img1, img1, Size(img2.cols, img2.rows));
}
3. 纵向拼接图片
调用 vconcat
函数将两张图片进行纵向拼接。代码如下:
Mat result;
vconcat(img1, img2, result);
以上就是实现OpenCV图像纵向拼接的全部步骤,最后将拼接结果 result
写入文件即可。
下面是两个例子:
例子1:横向拼接
假设有两张图片,宽度一样,高度分别为300和400
Mat img1 = imread("image1.jpg");
Mat img2 = imread("image2.jpg");
if (img1.rows != img2.rows) {
resize(img1, img1, Size(img2.cols, img2.rows));
}
Mat result;
hconcat(img1, img2, result);
imwrite("hconcat.jpg", result);
例子2:纵向拼接
假设有两张图片,高度一样,宽度分别为600和800
Mat img1 = imread("image1.jpg");
Mat img2 = imread("image2.jpg");
if (img1.cols != img2.cols) {
resize(img1, img1, Size(img2.cols, img2.rows));
}
Mat result;
vconcat(img1, img2, result);
imwrite("vconcat.jpg", result);
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用c++实现OpenCV图像横向&纵向拼接 - Python技术站