gpt4 book ai didi

python - 相当于 python 的 [ :] in c++

转载 作者:行者123 更新时间:2023-11-28 02:16:49 25 4
gpt4 key购买 nike

这是 python 中包含在 opencv 中的程序“Trackbar as the Color Palette”的一部分。我想在 C++ 中使用它。

我的问题是最后一行。

r = cv2.getTrackbarPos('R','image')
g = cv2.getTrackbarPos('G','image')
b = cv2.getTrackbarPos('B','image')
img[:] = [b,g,r]

没有这个命令我只有一个黑色的图像。

最佳答案

您可能希望将 CV_8UC3 图像 img 的所有像素设置为 bg 给定的颜色> 和 r;

您可以在 OpenCV 中执行此操作,例如:

img.setTo(Vec3b(b, g, r));

或等同于:

img.setTo(Scalar(b, g, r));

在您的代码中,您基本上遗漏了所有重要部分:

  • 无限循环(所以你退出程序而不刷新图像颜色)
  • 新颜色的分配
  • 您正在混合使用过时的 C 语法和 C++ 语法。

这是你需要的:

#include <opencv2/opencv.hpp>
using namespace cv;

int main(int argc, char** argv)
{
// Initialize a black image
Mat3b imgScribble(256, 512, Vec3b(0,0,0));

namedWindow("Image", WINDOW_AUTOSIZE);
createTrackbar("R", "Image", 0, 255);
createTrackbar("G", "Image", 0, 255);
createTrackbar("B", "Image", 0, 255);

while (true)
{
int r = getTrackbarPos("R", "Image");
int g = getTrackbarPos("G", "Image");
int b = getTrackbarPos("B", "Image");

// Fill image with new color
imgScribble.setTo(Vec3b(b, g, r));

imshow("Image", imgScribble);
if (waitKey(1) == 27 /*ESC*/) break;
}

return 0;
}

关于python - 相当于 python 的 [ :] in c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33797793/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com