Tag: 图像处理

将float数组图像转换为可用于opencv的格式

我想知道是否有一种简单的方法可以将我的浮点数组图像转换为iplimage,这可以通过opencv来处理。 当然我可以用相同的大小创建一个空的iplimage,只是将我的浮点数组图像中的像素复制到emplty iplimage,但是有更优雅的解决方案。 也许是一种消耗更少内存的方法,因为源图像非常大,复制过程需要一段时间。 最好的祝福, Zhengtonic

简单的C图像库?

什么是最简单的C图像库加载和保存? 我只是想要一个2D数组来测试一些算法,并且不需要内置函数。

使用C ++或C语言处理图像

首先是我是初学者。 好的? 我已经阅读了相关的答案和问题,但请帮我解决这个问题: 如何在C ++中打开JPEG图像文件,将其转换为灰度图像,获取其直方图,将其调整为较小的图像,裁剪其特定区域或显示其特定区域? 对于这些任务,C或C ++一般更快吗? 哪些库最简单,最快? 运行时间非常重要。 谢谢。

使用openCv c ++复制图像的一部分

我正在使用opencv,我想从另一个图像的一部分创建一个图像。 我没有找到这样做的function所以我试图实现我的想法,包括逐像素地复制图像但是徒劳无法得到我正在等待的结果。 任何人都有另一个想法 码: #include “cv.h” #include “highgui.h” #include #include #include int main(int argc,char** argv) { IplImage * img =0; uchar *data; int i,j,k; int height,width,widthStep,nChannels; img=cvLoadImage(argv[1],3); height =img->height; width = img->width; widthStep= img->widthStep; nChannels = img->nChannels; data=(uchar*)img->imageData; IplImage* img1=cvCreateImage(cvSize(height/2,width/2),IPL_DEPTH_8U,nChannels); for(i=0;i<height/2;i++){ for(j=0;j<width/2;j++){ for(k=0;kimageData[i*widthStep+j*nChannels]=data[i*widthStep+j*nChannels]; } } } cvShowImage(“image_Originale2”,img1); cvWaitKey(0); cvReleaseImage(&img); return 0; }

YUV420到RGB颜色转换错误

我正在converting YUV420格式的图像converting为opencv RGB图像,但conversion.后我得到的是Orange图像conversion. 我使用以下代码来做到这一点。 我的代码有问题吗? int step = origImage->widthStep; uchar *data = (uchar *)origImage->imageData; int size = origImage->width * origImage->height; IplImage* img1 = cvCreateImage(cvGetSize(origImage), IPL_DEPTH_8U, 3); for (int i = 0; iheight; i++) { for (int j=0; jwidth; j++) { float Y = data[i*step + j]; float U = data[ (int)(size + (i/2)*(step/2) + j/2) […]

(rho / theta)参数化中定义的两条线的交点

已经创建了Hough变换的c ++实现来检测图像中的线条。 找到的线条用rho,theta表示,如维基百科所述: “参数r表示直线与原点之间的距离,而θ是从原点到该最近点的矢量角度” 如何在使用r,θ描述的两条线的x,y空间中找到交点? 这里参考我目前用于转换进出霍夫空间的函数: //get ‘r’ (length of a line from pole (corner, 0,0, distance from center) perpendicular to a line intersecting point x,y at a given angle) given the point and the angle (in radians) inline float point2Hough(int x, int y, float theta) { return((((float)x)*cosf(theta))+((float)y)*sinf(theta)); } //get point y for a line […]

使用英特尔IPP的OpenCV Mat图像?

我最近开始使用Intel Performance Primitives(IPP)进行图像处理。 对于那些没有听说过IPP的人,可以将IPP视为MKL的模拟图像处理而不是线性代数。 我已经在OpenCV中实现了一个有点复杂的视觉系统,我想换掉一些OpenCV例程(例如卷积和FFT)来实现更快的IPP例程。 我的OpenCV代码总是使用cv::Mat图像数据结构。 但是,基于IPP代码示例,IPP似乎更喜欢CIppiImage数据结构。 我的系统在OpenCV中进行了几次图像转换,然后我想在IPP中做一些事情,然后在OpenCV中做更多的工作。 这是让OpenCV和IPP很好地融合在一起的天真方式: cv::Mat = load original image use OpenCV to do some work on cv::Mat write cv::Mat to file CIppiImage = read cv::Mat from file //for IPP use IPP to do some work on CIppiImage write CIppiImage to file cv::Mat = read CIppiImage from file use OpenCV to […]

YUV 422,YUV 420,YUV 444

我有例如4 * 4图像。 我想分别提取Y,U和V组件。 如果图像是YUV 422,YUV 420和YUV444,该怎么做。 我有兴趣知道数组的结构如何在422,420和444中存储Y,U和V,以便可以访问它。

检测图像中的十字架

我正在开发一个程序来检测探测设备的尖端并分析探测过程中的颜色变化。 输入/输出机制或多或少地到位。 我现在需要的是事物的实际肉体:检测提示。 在下面的图像中,提示位于十字架的中心。 我想在一些阈值之后将BFS应用于图像,但后来卡住了,不知道如何继续。 然后我在阅读之后转向OpenCV,它提供了图像中的特征检测。 然而,我对这里使用的大量概念和技术感到不知所措,对如何继续进行无知。 我正确地看着它吗? 你能给我一些指示吗? 从短video中提取的图像 阈值设置为95的二进制版本

如何对图像进行高质量缩放?

我正在编写一些代码来缩放C / C ++中的32位RGBA图像。 我已经写了一些有些成功的尝试,但它们很慢,最重要的是尺寸图像的质量是不可接受的。 我比较了由OpenGL(即我的video卡)和我的例程缩放的相同图像,它的质量相差几英里。 我已经搜索了Google代码,搜索了我认为可以解决一些问题的源代码树(SDL,Allegro,wxWidgets,CxImage,GD,ImageMagick等),但通常他们的代码要么是错综复杂的,要么分散在各处或者是满满的汇编程序,很少或没有评论。 我还阅读了维基百科和其他地方的多篇文章,我只是没有找到我需要的明确解释。 我理解插值和采样的基本概念,但我很难让算法正确。 我不想依赖外部库来完成一个例程,并且必须转换为它们的图像格式并返回。 此外,无论如何,我想知道如何自己做。 🙂 我之前看过一个关于堆栈溢出问题的类似问题,但它并没有真正以这种方式回答,但我希望有人可以帮我推动我朝着正确的方向前进。 也许指点我一些文章或伪代码……任何可以帮助我学习和做的事情。 这是我正在寻找的: 没有汇编程序(我正在为多种处理器类型编写非常可移植的代码)。 对外部库没有依赖性。 我主要关注的是缩放DOWN,但是稍后还需要编写一个扩展例程。 结果的质量和算法的清晰度是最重要的(我可以在以后对其进行优化)。 我的例程基本上采用以下forms: DrawScaled(uint32 *src, uint32 *dst, src_x, src_y, src_w, src_h, dst_x, dst_y, dst_w, dst_h ); 谢谢! 更新:为了澄清,我需要一些比盒子重新采样更先进的东西,用于降尺度,这会使图像模糊不清。 我怀疑我想要的是某种双三次(或其他)滤波器,它与双三次升频算法有些相反(即每个目标像素都是从所有贡献源像素计算得出的,并结合了保持锐利的加权算法。 例 这是我从wxWidgets BoxResample算法得到的例子与我想要的256×256位图缩放到55×55的例子。 www.free_image_hosting.net/uploads/1a25434e0b.png 最后: www.free_image_hosting.net/uploads/eec3065e2f.png 原始的256×256图像