Opencv lesson1

#include <opencv2/core/core.hpp>
 #include <opencv2/highgui/highgui.hpp>
 #include <iostream>

 using namespace cv;
 using namespace std;
 #pragma comment(lib,"opencv_highgui249d.lib")
int main( int argc, char *argv[])
 {
/*if( argc != 2)
 {
 cout <<" Usage: display_image ImageToLoadAndDisplay" << endl;
 return 0;
 }*/

 Mat image;
 
 
 image =imread("D:\\My.jpg", 2); // Read the file //

printf("%d\n",image.size);
 printf("%s\n",argv[1]);
  printf("%s\n",argv[0]);
 
 if(! image.data ) // Check for invalid input
 {
 cout << "Could not open or find the image" << std::endl ;
 return 0;
 }



namedWindow( "Display window", CV_WINDOW_NORMAL ); // Create a window for display.
imshow( "Display window", image ); // Show our image inside it.
 
 waitKey(0); // Wait for a keystroke in the window
 return 0;

 }


Opencv关于imread读取图像的问题

         opencv在读取图像时有两种方法,第一种是通过cvLoadImage来读取,这是个c函数,函数返回IplImage*指针。在opencv2.0以上版本中,可以直接通过imread函数将图像读入Mat矩阵中,但是是有些注意事项的。

        imread读入图像时,如果直接传入本地图像名,结果返回的是空指针,也就是找不到文件。

       Mat img_1 = imread("3.jpg", CV_LOAD_IMAGE_GRAYSCALE );

       出现这种现象的原因,网上有很多种说法,最合理的解释就是路径的编码方式不同导致。有人建议将源码文件转换成本人电脑系统下地编码方式,但是这种过程比较复杂,简单的方式就是加入绝对路径,但是注意在“\”的时候必须加入双“\\”以便编译器将“\”转义。

     对于本地文件,则可以直接在文件名前面加上“.\\”即可。

     Mat img_1 = imread(".\\3.jpg", CV_LOAD_IMAGE_GRAYSCALE );

      这样imread函数就可以读入图像数据了。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值