jietianzz 2018-03-21 23:40 采纳率: 0%
浏览 805
已结题

opencv代码在循环中出错

我在做把原始图像用一个blocksize*blocksize的block逐个扫描以找到符合判断条件且平均值最大的那个block在原始图像上的坐标。
代码在循环之外可以运行,加进循环之后就一直报错,说是cvSetImageROI之中rect参数问题,但是我找不到问题,求大神指教
#include "highgui.h"

#include "cv.h"

#include "stdio.h"
///*#include "cxcore.h"
//#include "cvaux.h" /
#include

///
#include
//#include
//#include
//#include
//#include
//#include
//#include */
#include
using namespace std;
using namespace cv;

int main()
{
IplImage* image = cvLoadImage("C:\11.png"); //
IplImage* image1;
IplImage* gray = NULL;
IplImage* multi = NULL;
IplImage* himage = NULL;
IplImage* hbackground = NULL;
IplImage* shadow = NULL;
cvShowImage("0", image);

CvSize imagesize = cvGetSize(image);


double blocksize;
if (image->height > image->width)
    blocksize = 0.05*image->width;
else
    blocksize = 0.05*image->height;
cout << blocksize << endl;
blocksize = cvFloor(blocksize);
cout << blocksize << endl;
CvScalar meanvalue;
CvScalar sigma;
double meanmax = 0;
double meannum;
double sigmanum;
double blockx = 0;
double blocky = 0;
double threshold1 =6;
double threshold2 = 8;


for (int i = 0; i < (imagesize.height - blocksize-2); i++)
{
    for (int j = 0; j < (imagesize.width - blocksize-2); j++)
    {
        CvRect rect;
        rect.x = i, rect.y = j, rect.width = blocksize, rect.height = blocksize;
        cvSetImageROI(image, rect);//设置源图像ROI


        cvAvgSdv(image, &meanvalue, &sigma);//////error cant fix
        meannum = (meanvalue.val[0] + meanvalue.val[1] + meanvalue.val[2]) / 3;
        sigmanum = (sigma.val[0] + sigma.val[1] + sigma.val[2]) / 3;
        if ( meannum > threshold1 && sigmanum < threshold2 && meannum>meanmax)
        {
            meanmax = meannum;
            blockx = i;
            blocky = j;
        }
        cvResetImageROI(image);

    }

}
cvWaitKey(0);
return 0;

}

  • 写回答

3条回答 默认 最新

  • 红帽01 2018-03-22 01:18
    关注

    试试这样

    fro()
    {
    for()
    {
    cvSetImageROI(image, rect);//设置源图像ROI
    //提取ROI
    cvCopy(image,image1);

    cvAvgSdv(image1, &meanvalue, &sigma);
    
    cvReleaseImage(&image1);
    }
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败
  • ¥15 MapReduce实现倒排索引失败
  • ¥15 ZABBIX6.0L连接数据库报错,如何解决?(操作系统-centos)
  • ¥15 找一位技术过硬的游戏pj程序员
  • ¥15 matlab生成电测深三层曲线模型代码
  • ¥50 随机森林与房贷信用风险模型