问题标签 [iplimage]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
7635 浏览

c++ - 如何将 OpenCV IplImage 转换为 SDL_Surface?

我正在尝试编写一个程序,该程序需要一个SDL_Surface,将其转换为IplImage,使用 cvBlobsLib 查找 blob,将 blob 绘制为图像上的点,然后将输出转换IplImageSDL_Surface.

我快完成了:只有将IplImageback 转换为 anSDL_Surface尚未完成。这个 IplImage 有 3 个图像通道,每像素 8 位。我想我可以使用两个电话:

我目前正在尝试使用SDL_CreateRGBsurfaceFrom. 但是,我不知道 pitch、Rmask、Gmask 和 Bmask 的正确值是多少。(Amask 为 0,因为没有 Alpha 通道。)

任何人都可以通过解释如何做到这一点来帮助我吗?

谢谢!

编辑:例如,这是我尝试使用的代码:

(SDL 文档写道“Pitch 是表面扫描线的大小,以字节为单位,即 widthInPixels*bytesPerPixel。”)这会输出“Depth 8, nChannels 3, pitch 1920”并显示一个完全红色的图像。我认为一个解决方案是将我的 8 位图像转换为 24 位(每个通道 1 个字节),但我不知道该怎么做。有任何想法吗?

0 投票
6 回答
44670 浏览

opencv - 如何将 8 位 OpenCV IplImage* 转换为 32 位 IplImage*?

我需要将 8 位 IplImage 转换为 32 位 IplImage。使用来自整个网络的文档,我尝试了以下事情:

如您所见,我真的不知道自己在做什么。我很想知道,但如果我能正确完成这项工作,我会更喜欢它。感谢我得到的任何帮助!

0 投票
1 回答
2840 浏览

image-processing - DirectX 和 OpenCV

所以我已经编写了一个程序,它可以从网络摄像头捕获图像,并将其放入一个名为 pBuffer 的向量中。我可以轻松访问每个像素的 RGB 像素信息,只需通过

pBuffer[i]=R;pBuffer[i+1]=G;Buffer[i+2]=B.

这里没问题。

下一步现在是创建一个 IplImage* img,并用 pBuffer 的信息填充它……某种 SetPixel。

网上有一个SetPixel函数,即:

其中值是 pBuffer 信息,x 和 y 是像素坐标。但是我根本无法使用它。有任何想法吗??我正在使用 C++。

0 投票
2 回答
7739 浏览

c++ - 将 RGB IplImage 转换为 3 个数组

我需要一些 C++/指针帮助。当我创建一个 RGB IplImage 并且我想访问 i,j 我使用以下 C++ 类取自:http ://www.cs.iit.edu/~agam/cs512/lect-notes/opencv-intro/opencv-介绍.html

我一直在使用 CUDA,所以有时我必须将所有数据放入一个数组中,我喜欢将每个通道保留在自己的数组中,这样处理数据似乎更容易。所以我通常会做这样的事情:

然后,我会将我的数据复制到设备,用它做一些事情,将其返回主机,然后再次循环,通过将数据分配回 IplImage 的数组并保存我的结果。

似乎我正在循环很多,必须有一种更快的方法来使用指针来做到这一点,但我迷路了,必须有一种更有效的方法来做到这一点。有没有办法可以简单地为每个频道使用一个指针?我尝试做这样的事情,但没有奏效:

有什么建议么?谢谢!

编辑:谢谢大家的回答。也许我对我的问题不是很清楚。我熟悉如何访问渠道及其数据。我感兴趣的是提高将数据从 IplImage 完全复制到标准数组的性能和效率,更符合 csl 到目前为止所说的内容。我看到的问题是 IplImage 中数据的排列方式是“rgbrgbrgbrgb”。

0 投票
2 回答
11626 浏览

python - Python/OpenCV:转换从捕获中获取的图像

我正在尝试转换从捕获(网络摄像头)拍摄的图像并使用 OpenCV 对它们进行一些处理,但我遇到了困难。

尝试将图像转换为灰度时,程序崩溃。(Python.exe 已停止工作)

这是我的代码的主要片段:

当我尝试使用 cvConvertScale 我得到断言错误:

这是有道理的,但我很困惑如何将我的网络摄像头的输入图像转换为可供 cvUpdateMotionHistory() 和 cvCalcOpticalFlowLK() 等函数使用的图像

有任何想法吗?谢谢。

更新:

我用这个手动将图像转换为灰度:

但这需要相当长的时间......我仍然无法弄清楚为什么 cvCvtColor 导致程序崩溃。

0 投票
1 回答
919 浏览

c++ - OpenCV 的 IplImage* 作为函数参数错误

我正在使用 OpenCV 库,我想在单独的函数中克隆图片,但我无法向函数发送地址

IplImage* image = cvLoadImage( path, CV_LOAD_IMAGE_GRAYSCALE ); // loading is ok
showFoundPoints(image); // -> here it shows errors
...

//my function
int showFoundPoints(IplImage*image)
{...}

我得到了这个构建错误:
错误:从IplImage*' to non-scalar typestd::string' 请求的转换

我不明白为什么会有转换。它看起来很简单,但我真的不知道该怎么做。
感谢帮助。

0 投票
4 回答
52765 浏览

opencv - 如何在 OpenCV 2.0 中将 Mat 变量类型转换为 IplImage 变量类型?

我正在尝试在 OpenCV 中旋转图像。

我使用了在 Stack Overflow 上找到的这段代码:

一旦我dst Mat填满了我的变量类型,我想把它放回一个IplImage变量类型,关于如何做到这一点的任何想法?

0 投票
1 回答
1043 浏览

image-processing - 如何将通过http post接收的png图像加载为OpenCV IplImage格式

我正在编写一个网络服务器,它接收图像并进行一些处理并回复结果。

图像为 png 格式。它通过 POST 使用 PHP 作为 byte[] 接收。我必须将此字节 [] 转换为 OpenCV IplImage 格式。我应该遵循哪些步骤来完成这项工作?

我目前这样做的方式是读取图像并将其保存在硬盘驱动器上并将文件路径解析为 OpenCV cvLoadImage() 函数。我相信做上一段中描述的方式比这更有效。

或者有没有办法将 byte[] 直接解析为一些 OpenCV 函数,而无需自己尝试将其转换为 IplImage 格式?

谢谢..

0 投票
3 回答
5088 浏览

iphone - Iphone 将 IplImage 转换为 UIImage 并返回会导致旋转

我正在使用一些代码在 iplimage 和 uiimage 之间进行转换。我拍摄了一张从相机拍摄的照片(UIImage),然后使用下面发布的代码将其转换为 iplimage 并返回。不幸的是,这会导致图像旋转并拉伸 90 度。因此,如果我拍摄 320x480 图像,它会返回 320x480 图像,但图像已被旋转并重新缩放,使其看起来好像旋转了 90 度(即 aa 480x320 图像)然后缩放不均匀......我想不通out - 一切似乎都正确(字节顺序等)

0 投票
4 回答
785 浏览

c++ - 在 C++ 中另存为 Flash

如何将IPLImageOpenCV 保存为 Flash 文件?也许有一个图书馆可以做到这一点?