11

cv::MatOpenCVで配列()をゼロで埋める方法は?

4

2 に答える 2

28

画像をパディングするもう 1 つの方法は、copyMakeBorder関数を使用することです。

 C++: void copyMakeBorder(InputArray src, OutputArray dst, int top, int bottom, int left, int right, int borderType, const Scalar& value=Scalar() )

次に、ゼロでパディングするのは簡単です

Mat image,image_pad;
copyMakeBorder(image,image_pad,1,1,1,1,BORDER_CONSTANT,Scalar(0));

最後に、画像に境界線を追加するのチュートリアルです。

于 2013-07-02T08:50:21.870 に答える
18

ここにそれを行う方法があります

cv::Mat img(100, 100, CV_8UC3);
cv::Mat padded;
int padding = 3;
padded.create(img.rows + 2*padding, img.cols + 2*padding, img.type());
padded.setTo(cv::Scalar::all(0));

img.copyTo(padded(Rect(padding, padding, img.cols, img.rows)));
于 2012-07-31T11:52:07.187 に答える