C++相当于 OpenCV 的 cvConvertImage

发布于 2024-12-29 13:48:40 字数 266 浏览 0 评论 0原文

我正在寻找 OpenCV 中 cvConvertImage 的 C++ 等效项。

cvConvertImage(const CvArr* src, CvArr* dst, int flags=0)

具体来说,我有一个 cv::Mat 图像,其中红色和蓝色通道翻转,我希望将它们交换回来。在 cvConvertImage 中,您可以通过将标志设置为 CV_CVTIMG_SWAP_RB 来实现此目的。

I'm looking for the C++ equivalent of cvConvertImage in OpenCV.

cvConvertImage(const CvArr* src, CvArr* dst, int flags=0)

Specifically, I have a cv::Mat image with the red and blue channels flipped, and I wish to swap them back. In cvConvertImage you can do this by setting flags to be CV_CVTIMG_SWAP_RB.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

墨洒年华 2025-01-05 13:48:40

迟到的答案,但如果您想交换 R,您可以使用 cv::cvtColor(...) 和选项 CV_BGR2RGB B。

如果您想要更复杂的操作 mixchannels 是正确的选择

Late answer, but you can use cv::cvtColor(...) with option CV_BGR2RGB if you want to swap R and B.

If you want more complex operations mixchannels is the way to go

↙温凉少女 2025-01-05 13:48:40

我认为<一href="http://opencv.itseez.com/modules/core/doc/operations_on_arrays.html#void%20mixChannels%28const%20M在%2a%20src、%20int%20nsrc、%20Mat%2a%20dst、%20int%20ndst、%20const%20int%2a%20fromTo、%20size_t%20npairs%29" rel="nofollow">mixChannels() 就是您要寻找的。

I think mixChannels() is what you're looking for.

笨死的猪 2025-01-05 13:48:40

要访问单个像素,请参阅提取单个像素数据的最快方法?

那么只需交换红色/蓝色值即可

TO access individual pixels see Fastest way to extract individual pixel data?

Then it's just a matter of swapping the red / blue values

九公里浅绿 2025-01-05 13:48:40

我不知道 C++ 接口中有任何方法可以执行此操作,但如果您不想像 @Martin 建议的那样进行手动交换,您仍然可以将 cv::Mat 转换为 IplImage 并使用 cvConvertImage 为您完成这项工作:

// Load image into: cv::Mat mat_img;
...

// Convert cv::Mat to IplImage
IplImage ipl_img = mat_img;

cvConvertImage(&ipl_img , &ipl_img , CV_CVTIMG_SWAP_RB);

I don't know any method in the C++ interface to do this, but if you don't want to do a manual swap like @Martin suggested, you can still convert cv::Mat to IplImage and use cvConvertImage to do the job for you:

// Load image into: cv::Mat mat_img;
...

// Convert cv::Mat to IplImage
IplImage ipl_img = mat_img;

cvConvertImage(&ipl_img , &ipl_img , CV_CVTIMG_SWAP_RB);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文