opencv连续读取多张图片,并对每张图片进行霍夫圆操作后,只能读取第一张图片

问题描述

opencv连续读取多张图片,并对每张图片进行霍夫圆操作后,只能读取第一张图片

当单独对第一个for循环进行操作时,会显示文件下的4张图片,但是加上霍夫变换后,只能显示一张图片及霍夫变换后的图片,其他的3张图片及变换后的图片都显示不出来,请问这是为什么?
#include "cv.h"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/opencv.hpp"
#include
char filename[100];
char windowname[100];

using namespace cv;
using namespace std;

/** @function main /
int main()
{
for (int j = 1; j <= 4; j++)
{
sprintf(filename, "E:/projects/%d.jpg", j);
sprintf(windowname, "window%d.jpg", j);
IplImage
pScr = cvLoadImage(filename, 1);
cvNamedWindow(windowname, CV_WINDOW_AUTOSIZE);
cvShowImage(windowname, pScr);
/// Read the image

    Mat src=pScr;//将IplImage类型的图片pScr转换为Mat型的src,因为霍夫变换是对Mat类型进行操作的,不知道这里理解对不对
    Mat  src_gray;
    if (!src.data)
    {
    return -1;
    }

    /// Convert it to gray
    cvtColor(src, src_gray, CV_BGR2GRAY);

    /// Reduce the noise so we avoid false circle detection
    GaussianBlur(src_gray, src_gray, Size(9, 9), 2, 2);

    vector<Vec3f> circles;

    /// Apply the Hough Transform to find the circles
    HoughCircles(src_gray, circles, CV_HOUGH_GRADIENT, 1.5, 10, 200, 100, 0, 0);

    /// Draw the circles detected
    for (size_t i = 0; i < circles.size(); i++)
    {
    Point center(cvRound(circles[i][0]), cvRound(circles[i][1]));
    int radius = cvRound(circles[i][2]);
    // circle center
    circle(src, center, 3, Scalar(0, 255, 0), -1, 8, 0);
    // circle outline
    circle(src, center, radius, Scalar(0, 0, 255), 3, 8, 0);
    cout << "第" << j << "个图片的直径是:" << 2 * radius << endl;
    }

    /// Show your results
    namedWindow("Hough Circle Transform Demo", CV_WINDOW_AUTOSIZE);
    imshow("Hough Circle Transform Demo", src);
    waitKey(0);

}
    waitKey(0);
    return 0;

}

解决方案

加上霍夫变换后出现的问题,说明你的霍夫变换部分的代码有问题。
可能存在内存访问越界的情况,建议你调试一下代码、分析一下执行过程中是不是出现异常的情况。

解决方案二:

waitKey(0);外面找个不知道去掉影响不,
完后就是每次用完mat 用api把mat里面内容清空一下?

时间: 2025-01-21 06:46:05

opencv连续读取多张图片,并对每张图片进行霍夫圆操作后,只能读取第一张图片的相关文章

关于瀑布流图片从数据库读取,并在每张图片加透明层,层上加文字描述

问题描述 现有一个小网站,需要瀑布流,并且鼠标移动到每张图片上,出现透明层覆盖在鼠标移动到的图片上,透明层与图片大小一致,透明层上有改图片文字描述,图片来源于数据库,请教高手帮忙指点

java se-JPane显示多张图片设置滚动条,图片只能显示一部分,代码如下:

问题描述 JPane显示多张图片设置滚动条,图片只能显示一部分,代码如下: package com.jiqixuexi.paper.main; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Image; import java.io.File; import javax.imageio.ImageIO; import javax.swing.JFrame; import javax.swing.JPane

android 动画 不同-如何实现 android 顺序播放图片时,每张图片不同动画效果?

问题描述 如何实现 android 顺序播放图片时,每张图片不同动画效果? 已经定义了几种动画效果如 slide_out_left.xml. slide_out_right.xml. zoom_in.xml. zoom_out.xml. shake.xml等, 并实现了多张图片使用同一种动画效果(如shake)自动的顺序播放.现在想实现的效果大致是: picture1 执行slide_out_left, picture2 执行slide_out_right, picture3 执行zoom_in

ASP保存远程图片到本地 同时取得第一张图片

这是本人在SNA新闻采集系统 For 动力3.62 里使用的几个函数可以普遍的使用在采集 或者 在线添加文章中以下是函数程序代码<%'=================================================='函数名:DefiniteUrl'作 用:将相对地址转换为绝对地址'参 数:PrimitiveUrl ------要转换的相对地址'参 数:ConsultUrl ------当前网页地址'=======================================

ASP分析内容自动保存远程图片到本地并取得第一张图片创建缩略图

俺从SNA新闻采集系统 For 3.62 (程序制作:ansir)里提取了点函数 用下 比较简单好用 以下是函数 程序代码 <% '================================================== '函数名:CheckDir2 '作 用:检查文件夹是否存在 '参 数:FolderPath ------文件夹地址 '================================================== Function CheckDir2(byva

编码-django取出pymongo中存储的中文图片路径后,读取该路径在网页上展示没有出现图片

问题描述 django取出pymongo中存储的中文图片路径后,读取该路径在网页上展示没有出现图片 问题是这样的: 我搭建的环境是:python2.7 + mongoengine + pymongo + django + Ubuntu14 python处理一些带有中文路径的图片,把这个路径存储在数据库pymongo中,保存的时候该路径是转换为:utf-8类型存储到数据库中,然后django通过mongoengine来连接pymongo的数据库,从中取出这个图片的路径, 希望向各位朋友们请教一下下

c++-用C++的输入流为什么只能读取第一个数求指教

问题描述 用C++的输入流为什么只能读取第一个数求指教 今天用C++摘了一段求解力学中常见的桁架问题的程序,结果在运行的时候总是无法获得想要的结果.不知道哪里出错了,特向各位大神请教.源程序和数据程序如下: 源程序: #include #include #include #include #include //以下定义函数 void INPUT(double X[], double Y[], int NCO[], double PROP[], double AL[], int IB[], dou

asp.net(c#)获取内容第一张图片地址的函数_实用技巧

首先找到内容里面第一个<img标签的位置,然后找到从这个起的第一个>的位置,得到第一张图片的完整标签. 然后通过分隔空格得到图片的各个属性和属性值,提取src的值就是图片的地址 代码如下: 复制代码 代码如下: /// <summary> /// 获取文中图片地址 /// </summary> /// <param name="content">内容</param> /// <returns>地址字符串</r

php实现获取文章内容第一张图片的方法_php技巧

本文实例讲述了php实现获取文章内容第一张图片的方法.分享给大家供大家参考.具体分析如下: 采用php获取文章内容的第一张图片方法非常的简单,我们最常用的是使用正则了,感兴趣的朋友可以参考一下下面这段代码. 以下是关于选取文章中第一张图片的代码: 复制代码 代码如下: $obj=M("News"); $info=$obj->where('id=1')->find(); //方法1********* $soContent = $info['content']; $soImag