opencv 拼接图像

opencv 拼接图像

简单拼接

  • left and right example
cv::Mat image(
    std::max(leftImage.rows, rightImage.rows),
    leftImage.cols + rightImage.cols,
    leftImage.type());
leftImage.copyTo(cv::Mat(
    image, cv::Rect{ 0, 0, leftImage.cols, leftImage.rows }));
rightImage.copyTo(cv::Mat(
    image, cv::Rect{ leftImage.cols, 0, rightImage.cols, rightImage.rows }));
  • top and bottom example
cv::Mat image(topImage);
image.push_back(bottomImage);

https://yuiwong.org/gitlab/graphics/cvdoc

opencv convert to

opencv convert to

  • known conditions
    • source range and target range
    • to get source to target scale
    • target type
  • then convert

example

  • cv 8u1 to cv 32f1

https://stackoverflow.com/questions/12837876/opencv-convertto-returns-white-image-sometimes

When you use convertTo from CV_8U1 to CV_32F1,
a pixel value, for example, 255 becomes 255.0.
But when you try `imshow’ the resulting image,
the command expects all pixel values to be between 0.0 and 1.0.
that’s why, without rescaling the image, the image will look all white.
So this will do the trick as zzz pointed out (thanks).

input.convertTo(output, CV_32F, 1.0 / 255.0);

https://yuiwong.org/gitlab/graphics/cvdoc