OpenCV中C++関数imreadで画像を読み込む問題
3321 ワード
http://www.cnblogs.com/eyeszjwang/articles/2418354.html
プログラムは簡単です.Imgprocの2つのC++関数pyrUpとpyrDownを直接呼び出して画像ピラミッドを実現します.プログラムの詳細な説明は参照してください.http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/tutorials/imgproc/pyramids/pyramids.html.しかし、実現の過程で、imreadは画像データとcv LoadImageを最後まで読み取れないことがわかった.何度も考証したが、確かに在庫関連の問題があった.つまり、Debugモードでは'd'を持つlibを選択し、Releaseモードでは'd'を持たないlibを選択します.実際にOpenCV環境を設定する時、DebugとReleaseのカタログを一緒に入れて、修正するのも面倒くさいです.ですから、この時一番簡単な方法はプログラムの開始に加えます.
(x 2)(x 1)(x 0.5)(x 0.25)
#include "stdafx.h"
#include
#include
#include
#include
#include
using namespace cv;
Mat src, dst, tmp;
char* window_name = "Pyramids Demo";
int _tmain(int argc, _TCHAR* argv[])
{
printf("
Zoom In-Out demo
");
printf("--------------------
");
printf("*[u]-> Zoom in
");
printf("*[d]-> Zoom out
");
printf("*[ESC]-> Close program
");
src = imread("D:\\fruits.jpg");
if(!src.data)
{
printf("No data!--Exiting the program
");
return -1;
}
tmp = src;
dst = tmp;
namedWindow(window_name,CV_WINDOW_AUTOSIZE);
imshow(window_name,dst);
while(true)
{
int c;
c = waitKey(10);
if((char)c == 27)
{
break;
}
if((char)c == 'u')
{
pyrUp(tmp,dst,Size(tmp.cols * 2,tmp.rows * 2));
printf("** Zoom In:Image x 2
");
}
else if((char)c == 'd')
{
pyrDown(tmp,dst,Size(tmp.cols / 2,tmp.rows / 2));
printf("**Zoom Out:Image / 2
");
}
imshow(window_name,dst);
tmp = dst;
}
return 0;
}
プログラムは簡単です.Imgprocの2つのC++関数pyrUpとpyrDownを直接呼び出して画像ピラミッドを実現します.プログラムの詳細な説明は参照してください.http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/tutorials/imgproc/pyramids/pyramids.html.しかし、実現の過程で、imreadは画像データとcv LoadImageを最後まで読み取れないことがわかった.何度も考証したが、確かに在庫関連の問題があった.つまり、Debugモードでは'd'を持つlibを選択し、Releaseモードでは'd'を持たないlibを選択します.実際にOpenCV環境を設定する時、DebugとReleaseのカタログを一緒に入れて、修正するのも面倒くさいです.ですから、この時一番簡単な方法はプログラムの開始に加えます.
#pragma comment(lib,"opencv_highgui231d.lib")
を選択します.実験結果は以下の通りです.(x 2)(x 1)(x 0.5)(x 0.25)