我很沮丧,试图找到一种方法,允许我将Mat对象缩放到不同的大小.拜托,有人可以帮帮我吗?
我的项目是使用Java包装器,但如果提供的答案是针对C++本机OpenCV库,我会很高兴.
Y.A*_*.AL 10
你可以使用 resize()功能
创建新维度的新Mat结果
resize(input // input image
result // result image
result.size() // new dimensions
0,
0,
INTER_CUBIC // interpolation method
);
Run Code Online (Sandbox Code Playgroud)
要了解更多插值方法,可以查看这个doc:geometric_transformations.html#resize
如果通过调整大小意味着缩放图像,请使用resize()函数,如下所示:
resize(src, dst, dst.size(), 0, 0, interpolation);
Run Code Online (Sandbox Code Playgroud)
否则,如果您只需要更改Mat的行数,请使用Mat :: reshape()函数.请注意,重塑会返回一个新的Mat标头:
cv::Mat dst = src.reshape ( 0, newRowVal );
Run Code Online (Sandbox Code Playgroud)
最后,如果你想任意重塑Mat(更改行和列),你可能需要定义一个具有目标尺寸的新Mat并将src Mat复制到它:
Mat dst(newRowVal, newColVal, src.type());
src.setTo(0);
src.copyTo(dst(Rect(Point(0, 0), src.size())));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20632 次 |
| 最近记录: |