Tag: 计算机视觉

用于高分辨率图像的Opencv角点检测

我刚刚使用OpenCV实现角点检测,我将角点值设为零。我使用3488 * 2616分辨率相机images.it是否有任何正确的方法来找到高分辨率图像的角点检测。我不知道我在哪里我犯了错误。在这里我也附上了我的代码和图片。请帮助我。对于我的英语来说,这是一个非常新的opencv.sorry。 int board_w = 6; int board_h = 6; const int MAX_CORNERS = 500; int main() { int board_n = (board_w-1) * (board_h-1); CvSize board_sz = cvSize( board_w-1, board_h-1 ); CvPoint2D32f* corners = new CvPoint2D32f[board_n]; int cornerCount = 0; IplImage *image = cvLoadImage(“myimage.jpg”); IplImage *gray_image = cvCreateImage(cvGetSize(image),8,1); cvCvtColor(image, gray_image, CV_BGR2GRAY ); const int […]

跟踪并替换实时video流中的标记

我想创建一个程序,可以检测实时video流中的标记,用我之前拍摄的图片的一部分替换标记。 我正在使用ARtoolKit识别标记。 首先,我将抓取video帧并将其保存为jpg文件,然后我将放置标记并让video识别标记。 程序识别出标记但按键盘键后,我将调用一个函数hode marker(),它接收jpg和标记的coordenates。 也许通过使用ImageMagick,我将裁剪图像到coordenates脚。 然后我可能会创建一个opengl平面,其中的图像具有纹理。 需要一些帮助来解决这个问题。

你能用cvCalibrateCamera2找到两个摄像头之间的外在关系吗?

我想知道使用cvCalibrateCamera2找到两台摄像机之间的旋转和平移的可能性是cvCalibrateCamera2 。 例如,您刚刚完成棋盘校准的场景,其中棋盘可以在两个图像平面上查看。 如果我然后从一个摄像机传递这些点作为object_points ,而将另一个摄像机的点image_points为image_points ,这会给我两个视图之间的旋转和平移吗? 此外,这会吐出几个旋转矩阵和平移向量。 我会用哪一个?

无法将’cv :: VideoCapture’转换为’CvCapture *’

我有一个简单的程序,它拍摄video并播放它(虽然它对video进行了一些图像处理)。 可以从对话框结果中检索video,也可以直接通过提供文件路径来检索video。 当我使用cv :: CvCapture capture1时 ,我得到了像capture1.isOpen(), capture1.get(CV_CAP_PROP_FRAME_COUNT)等属性,但是当我使用CvCapture * capture2时,我得到了奇怪的错误。 我想使用cv :: CvCapture capture1,因为我的函数与capture1一致 。 或者有没有办法使用这两种类型之间的某种转换,如类型转换或其他东西。 实际上我有两个程序,program1的function是cv :: CvCapture ,program2的function是CvCapture * 。 我的意思是这两个程序以不同的方式读取video文件。 然后我合并了这两个程序,以使用program1中的一些函数和program2中的一些函数。 但我无法将cv :: CvCapture转换为CvCapture * 。 我正在使用OpenCv和Qt Creator。 我的代码在这里发布很长,但我已经简化了我的代码,使其更小,更容易理解。 我的代码可能无法正确编译,因为我修改它以使其更简单。 任何帮助,将不胜感激。 提前致谢 :) void MainWindow::on_pushButton_clicked() { std::string fileName = QFileDialog::getOpenFileName(this,tr(“Open Video”), “.”,tr(“Video Files (*.mp4 *.avi)”)).toStdString(); cv::VideoCapture capture1(fileName); // when I use the […]

使用OpenCV检测小圆圈(图像质量差)

我正试图检测你在这张照片中央可以看到的四个点: 这个转换为png,我实际上使用ppm格式(从相机的原始输出转换后)。 实际处理的图像可在此处获得 我是opencv的新手,因此在检测这些点时遇到了很大的问题。 这是我迄今为止最好的结果: 正如你所看到的,我已经检测到了3个点,但除此之外,图片中的许多其他东西都被识别为圆圈。 这是代码: IplImage* img; if((img = cvLoadImage( “photos/img-000012.ppm”, 1)) == 0 ) { perror(“cvLoadImage”); return 1; } cvNamedWindow( “Image view”, 1 ); cvShowImage( “Image view”, img ); // cvWaitKey(0); IplImage* gray = cvCreateImage( cvGetSize(img), 8, 1 ); // allocate a 1 channel byte image CvMemStorage* storage = cvCreateMemStorage(0); cvCvtColor( img, […]

使用OpenCV进行多颜色对象检测

我试图检测两个白色墙壁上的红色墙壁和白色方块的图像中的位置,红色顶部和白色“柱子”: 我的方法是进行阈值处理以找到我现在可以从输出中轻松检测到的红色墙壁: 现在我的问题是检测白色方块的位置,但考虑到白色墙壁,这更难。 如果我基于白色的阈值,我仍然在白色方柱之间保留不需要的白色墙壁。 任何帮助将不胜感激。

如何在opencv中找到图像之间的重叠区域?

我正在尝试使用两个图像实现alpha混合以进行图像拼接。 我的第一张照片是 – > 这是我的第二张图片 – > 这是我的结果图片 – > 你可以看到结果不合适。我想我首先必须找到之间的重叠区域,然后在重叠部分上实现alpha混合。

使用英特尔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 […]

如何从opencv中的RGB图像(3通道图像)访问图像数据

我想在这里拍摄图像的imageData,其中w =图像宽度,h =图像高度 for (int i = x; i < x+h; i++) //height of frame pixels { for (int j = y; j imageData[pos]>0) //Taking data (here is the problem how to take) { xPos += j; yPos += i; nPix++; } } }

找到图像的方向

我正在与OpenCv进行模式匹配。 我有一个模型,我将目标与函数cvMatchShapes进行比较。 它有效,但我想知道目标的方向。 我该怎么做?