是否有OpenCV功能在另一个图像上绘制图像?我有一个Mat类型的大图像.我有一个Mat类型(5x7)的小图像.我想在指定的大图像上绘制这个小图像coordinates.
Era*_*n W 44
使用Mat::rowRange()和Mat::colRange()指定要在目标中绘制的区域Mat.码:
Mat src( 5, 7, CV_8UC1, Scalar(1)); // 5x7
Mat dst(10, 10, CV_8UC1, Scalar(0)); // 10x10
src.copyTo(dst.rowRange(1, 6).colRange(3, 10));
Run Code Online (Sandbox Code Playgroud)
结果如下:
之前copyTo():
dst:
( 0 0 0 0 0 0 0 0 0 0 )
( 0 0 0 0 0 0 0 0 0 0 )
( 0 0 0 0 0 0 0 0 0 0 )
( 0 0 0 0 0 0 0 0 0 0 )
( 0 0 0 0 0 0 0 0 0 0 )
( 0 0 0 0 0 0 0 0 0 0 )
( 0 0 0 0 0 0 0 0 0 0 )
( 0 0 0 0 0 0 0 0 0 0 )
( 0 0 0 0 0 0 0 0 0 0 )
( 0 0 0 0 0 0 0 0 0 0 )
Run Code Online (Sandbox Code Playgroud)
之后copyTo():
dst:
( 0 0 0 0 0 0 0 0 0 0 )
( 0 0 0 1 1 1 1 1 1 1 )
( 0 0 0 1 1 1 1 1 1 1 )
( 0 0 0 1 1 1 1 1 1 1 )
( 0 0 0 1 1 1 1 1 1 1 )
( 0 0 0 1 1 1 1 1 1 1 )
( 0 0 0 0 0 0 0 0 0 0 )
( 0 0 0 0 0 0 0 0 0 0 )
( 0 0 0 0 0 0 0 0 0 0 )
( 0 0 0 0 0 0 0 0 0 0 )
Run Code Online (Sandbox Code Playgroud)
Rod*_*igo 37
在大图像中创建感兴趣区域,然后将小图像复制到该区域:
cv::Rect roi( cv::Point( originX, originY ), cv::Size( width, height ));
cv::Mat destinationROI = bigImage( roi );
smallImage.copyTo( destinationROI );
Run Code Online (Sandbox Code Playgroud)
如果您确定小图像适合大图像,那么您可以简单地执行:
cv::Rect roi( cv::Point( originX, originY ), smallImage.size() );
smallImage.copyTo( bigImage( roi ) );
Run Code Online (Sandbox Code Playgroud)
这是java版本openCV中的解决方案
Rect roi= new Rect(originX,originY,smalImage.width(),smallImge.height());
smallImage.copyTo( new Mat(input,roi) );
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
54429 次 |
| 最近记录: |