0

下面是提供 2 个图像的宽度、高度和 BGR 值的代码。但问题是在我关闭第一张图像之前我看不到第二张图像。要进行哪些修改以便我可以一次看到两个图像并获得所有像素值。

1 . #include <cv.h>
#include<iostream>
#include <cxcore.h>
#include <highgui.h>

using namespace std;

int main(int argc, char** argv[])
{
    int  width,height;
     int i=0,j=0,k=3,l=3;

        IplImage *img1 = cvLoadImage("E:/images.jpg");
        cvNamedWindow("Image1:",1);
        cvShowImage("Image1:",img1);
        cout << "Width:" <<  img1->width << endl;
        cout << "Height:" <<  img1->height << endl;
        CvScalar s;
        s=cvGet2D(img1,i,j); // get the (i,j) pixel value
        printf("B=%f, G=%f, R=%f\n",s.val[0],s.val[1],s.val[2]);
        cvWaitKey();
        cvDestroyWindow("Image1:");

        IplImage *img2 = cvLoadImage("C:/Users/Public/Pictures/Sample Pictures/Tulips.jpg");
        cvNamedWindow("Image2:",2);
        cvShowImage("Image2:",img2);
        cout << "Width:" <<  img2->width << endl;
        cout << "Height:" <<  img2->height << endl;

        s=cvGet2D(img2,k,l); // get the (k,l) pixel value
        printf("B1=%f, G1=%f, R1=%f\n",s.val[0],s.val[1],s.val[2]);
        cvWaitKey();
        cvDestroyWindow("Image2:");

        cvReleaseImage(&img1);
        cvReleaseImage(&img2);

        return 0;
}
4

1 回答 1

1

问题在于cvWaitKey() 尝试:

    IplImage *img1 = cvLoadImage("E:/images.jpg");
    cvNamedWindow("Image1:",1);
    cvShowImage("Image1:",img1);
    cout << "Width:" <<  img1->width << endl;
    cout << "Height:" <<  img1->height << endl;
    CvScalar s;
    s=cvGet2D(img1,i,j); // get the (i,j) pixel value
    printf("B=%f, G=%f, R=%f\n",s.val[0],s.val[1],s.val[2]);



    IplImage *img2 = cvLoadImage("C:/Users/Public/Pictures/Sample Pictures/Tulips.jpg");
    cvNamedWindow("Image2:",2);
    cvShowImage("Image2:",img2);
    cout << "Width:" <<  img2->width << endl;
    cout << "Height:" <<  img2->height << endl;

    s=cvGet2D(img2,k,l); // get the (k,l) pixel value
    printf("B1=%f, G1=%f, R1=%f\n",s.val[0],s.val[1],s.val[2]);


    cvWaitKey();
    cvDestroyWindow("Image1:");
    cvDestroyWindow("Image2:");
    cvReleaseImage(&img1);
    cvReleaseImage(&img2);
于 2013-03-04T06:10:48.467 回答