奇怪opencv问题?! 一个opencv的范例程序,打开以后运行通过,但是就直接只是显示那个“press any key to continue”的窗口,按理说要出现两个图片窗口的,都没有出现。这是为什么啊?很奇怪啊?!诡异opencv 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果没猜错的话,通常OPENCV的范例代码通常都是要自己输入图片位置~~ #include "cv.h"#include "highgui.h"/* src and dst are grayscale, 8-bit images; Default input value: [low, high] = [0,1]; X-Direction [bottom, top] = [0,1]; Y-Direction gamma ; if adjust successfully, return 0, otherwise, return non-zero.*/int ImageAdjust(IplImage* src, IplImage* dst, double low, double high, // X方向:low and high are the intensities of src double bottom, double top, // Y方向:mapped to bottom and top of dst double gamma ){if( low<0 && low>1 && high <0 && high>1&&bottom<0 && bottom>1 && top<0 && top>1 && low>high) return -1; double low2 = low*255; double high2 = high*255; double bottom2 = bottom*255; double top2 = top*255; double err_in = high2 - low2; double err_out = top2 - bottom2; int x,y; double val; // intensity transform for( y = 0; y < src->height; y++) { for (x = 0; x < src->width; x++) { val = ((uchar*)(src->imageData + src->widthStep*y))[x]; val = pow((val - low2)/err_in, gamma) * err_out + bottom2; if(val>255) val=255; if(val<0) val=0; // Make sure src is in the range [low,high] ((uchar*)(dst->imageData + dst->widthStep*y))[x] = (uchar) val; } } return 0;}int main( int argc, char** argv ) { IplImage *src = 0, *dst = 0; if( argc != 2 || (src=cvLoadImage(argv[1], 0)) == NULL) // force to gray image return -1; cvNamedWindow( "src", 1 ); cvNamedWindow( "result", 1 ); // Image adjust dst = cvCloneImage(src); // 输入参数 [0,0.5] 和 [0.5,1], gamma=1if( ImageAdjust( src, dst, 0, 0.5, 0.5, 1, 1)!=0) return -1; cvShowImage( "src", src ); cvShowImage( "result", dst ); cvWaitKey(0); cvDestroyWindow("src"); cvDestroyWindow("result"); cvReleaseImage( &src ); cvReleaseImage( &dst ); return 0;} 很明显你没指定图片位置, if( argc != 2 || (src=cvLoadImage(argv[1], 0)) == NULL) // force to gray image return -1;cvloadimage没读到图片==NULL,return -1了;你应该在判断前添加char* filename="lena.jpg";//把lena图片复制到程序文件夹里if( (src=cvLoadImage(filename, 0)) == NULL) // force to gray image 又或者你可以在DOS里运行程序和指定图片位置。 数据库出现问题啊 请问vc是否可以创建包含接口或者class的dll,生成的dll不需要注册供delphi调用 急..如何改变工具条按钮大小 Hidesoft Team 上海网络游戏程序招聘 在ScrollView中画一个很多bitmap,当上下滚动视图时,移出视图之外bitmap在回到视图中时就变成断层状. 如何动态更新控件的颜色 怎样对两张表进行一致性检查?(包括字段名称,字段类别.) 大家帮忙看看那里有问题呢? 关于数据类型,请帮助!!! 使用过ole db进行数据库编程的诸位请进!!! 奇怪opencv问题?! c++ clr 动态添加事件报错
#include "highgui.h"
/*
src and dst are grayscale, 8-bit images;
Default input value:
[low, high] = [0,1]; X-Direction
[bottom, top] = [0,1]; Y-Direction
gamma ;
if adjust successfully, return 0, otherwise, return non-zero.
*/
int ImageAdjust(IplImage* src, IplImage* dst,
double low, double high, // X方向:low and high are the intensities of src
double bottom, double top, // Y方向:mapped to bottom and top of dst
double gamma )
{
if( low<0 && low>1 && high <0 && high>1&&
bottom<0 && bottom>1 && top<0 && top>1 && low>high)
return -1;
double low2 = low*255;
double high2 = high*255;
double bottom2 = bottom*255;
double top2 = top*255;
double err_in = high2 - low2;
double err_out = top2 - bottom2; int x,y;
double val; // intensity transform
for( y = 0; y < src->height; y++)
{
for (x = 0; x < src->width; x++)
{
val = ((uchar*)(src->imageData + src->widthStep*y))[x];
val = pow((val - low2)/err_in, gamma) * err_out + bottom2;
if(val>255) val=255; if(val<0) val=0; // Make sure src is in the range [low,high]
((uchar*)(dst->imageData + dst->widthStep*y))[x] = (uchar) val;
}
} return 0;
}int main( int argc, char** argv )
{
IplImage *src = 0, *dst = 0;
if( argc != 2 || (src=cvLoadImage(argv[1], 0)) == NULL) // force to gray image
return -1;
cvNamedWindow( "src", 1 );
cvNamedWindow( "result", 1 );
// Image adjust
dst = cvCloneImage(src);
// 输入参数 [0,0.5] 和 [0.5,1], gamma=1
if( ImageAdjust( src, dst, 0, 0.5, 0.5, 1, 1)!=0) return -1;
cvShowImage( "src", src );
cvShowImage( "result", dst );
cvWaitKey(0); cvDestroyWindow("src");
cvDestroyWindow("result");
cvReleaseImage( &src );
cvReleaseImage( &dst ); return 0;
}
return -1;
cvloadimage没读到图片==NULL,return -1了;
你应该在判断前添加char* filename="lena.jpg";//把lena图片复制到程序文件夹里
if( (src=cvLoadImage(filename, 0)) == NULL) // force to gray image
又或者你可以在DOS里运行程序和指定图片位置。