質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

4回答

3049閲覧

opencvのエラー解決2

yamata

総合スコア36

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2016/11/17 05:02

編集2016/11/17 05:58

お世話になっております。何回も申し訳ありません。
エラーの解決方法が分からないため、質問させていただきます。

以下のプログラムを実行したところ、以下の画像のエラーが出ます。
以前は,
imgをカラーで読み込みグレースケールに変換し行っていました。その時はエラーがでませんでした。
しかし、都合上、imgをグレースケールで読み込む必要があり、(背景処理画像がグレースケール)変更を行ったところ、エラー画でました。

解決方法を教えていただけたらと思います。よろしくお願い致します。

動作環境は、opencv2.4.9です。

イメージ説明

#define LINE_THICKNESS 1 #define LINE_TYPE 8 #define SHIFT 0 #define SCALE_X (float)0.2 #define SCALE_Y (float)0.2 #define SCALE_XX 4.0 #define SCALE_YY 10.0 int main( int argc , char** argv) { IplImage * temp_up = NULL; IplImage * temp_side = NULL; IplImage * dst1 = NULL; IplImage * dst2 = NULL; IplImage * scale_img = NULL; IplImage * grey_img1 = NULL; IplImage * grey_img2 = NULL; IplImage * grey_temp_up = NULL; IplImage * grey_temp_side = NULL; double max_inter1inkage=0; double min_inter1inkage=0; double max_inter2inkage=0; double min_inter2inkage=0; CvPoint max_point1; CvPoint min_point1; CvPoint max_point2; CvPoint min_point2; //---------テンプレート画像を読み込む------- temp_up=cvLoadImage("temp_up.png",CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR); //カラー読み込み temp_side=cvLoadImage("temp_side.png",CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR); //カラー読み込み grey_temp_up=cvCreateImage(cvGetSize(temp_up),IPL_DEPTH_8U,1); //1チャンネル8ビットのIplImage作成(元画像) grey_temp_side=cvCreateImage(cvGetSize(temp_side),IPL_DEPTH_8U,1); //1チャンネル8ビットのIplImage作成(元画像) cvCvtColor(temp_up,grey_temp_up,CV_BGR2GRAY); cvCvtColor(temp_side,grey_temp_side,CV_BGR2GRAY); int64 start = cv::getTickCount();//所要時間計測 //------------------------原画像読み込み------------------------------- //IplImage * img= cvLoadImage("C:\\opencv_ICImage\\2016-11-8黒ネジ10本40fps\\Image0090.bmp",CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR); IplImage * img= cvLoadImage("背景処理.bmp",CV_LOAD_IMAGE_GRAYSCALE ); //-------------------------------------------------------------------------- //変換画像用IplImage scale_img=cvCreateImage(cvSize((int)((float)img->width*(float)SCALE_X), (int)((float)img->height*(float)SCALE_Y)), IPL_DEPTH_8U, 1); //変換 cvResize(img, scale_img, CV_INTER_LINEAR); printf("No float %d\n",img->width); printf("Float %d\n",(int)((float)img->width*SCALE_X)); printf("SCALE_X %f\n",(float)SCALE_X); //原画像コピー grey_img1=cvCloneImage(scale_img); grey_img2=cvCloneImage(scale_img); //赤枠で囲む cvRectangle(scale_img,cvPoint(100,65),cvPoint(155,135),CV_RGB(255,0,0),LINE_THICKNESS,LINE_TYPE,SHIFT); cvRectangle(scale_img,cvPoint(185,70),cvPoint(240,135),CV_RGB(255,0,0),LINE_THICKNESS,LINE_TYPE,SHIFT);//左上、右下 //-----------------ROIの設定---------------------- CvRect rect1; rect1.x = 100; rect1.y = 65; rect1.width = 55; rect1.height = 70; cvSetImageROI(grey_img1,rect1); CvRect rect2; rect2.x = 185; rect2.y = 70; rect2.width = 55; rect2.height =65; cvSetImageROI(grey_img2,rect2);//左上、幅、高さ //---------------------------------------------------- //cvSaveImage("copy_img1.bmp",copy_img1); //入力画像表示 cvNamedWindow("img_window",CV_WINDOW_AUTOSIZE); cvShowImage("img_window",scale_img); //--------------------------グレースケールの場合---------------------------------------------------------------- //テンプレート・マッチングに用いる相関値データを格納する画像の領域確保 //グレー・スケール画像用に領域確保 //grey_img1=cvCreateImage(cvGetSize(copy_img1),IPL_DEPTH_8U,1); //1チャンネル8ビットのIplImage作成(元画像) //grey_img2=cvCreateImage(cvGetSize(copy_img2),IPL_DEPTH_8U,1); //1チャンネル8ビットのIplImage作成(元画像) dst1=cvCreateImage(cvSize(abs(grey_img1->width-grey_temp_up->width)+1,abs(grey_img1->height-grey_temp_up->height)+1),IPL_DEPTH_32F,1); //領域確保 dst2=cvCreateImage(cvSize(abs(grey_img2->width-grey_temp_side->width)+1,abs(grey_img2->height-grey_temp_side->height)+1),IPL_DEPTH_32F,1); //領域確保 //グレー・スケールに変換して格納 //cvCvtColor(copy_img1,grey_img1,CV_BGR2GRAY); //cvCvtColor(copy_img2,grey_img2,CV_BGR2GRAY); cvMatchTemplate(grey_img1,grey_temp_up,dst1,CV_TM_CCOEFF_NORMED); //テンプレートマッチング cvMatchTemplate(grey_img2,grey_temp_side,dst2,CV_TM_CCOEFF_NORMED); //テンプレートマッチング printf("dst1.x_%d\n",dst1->width); printf("dts1.y_%d\n",dst1->height); IplImage *dst3=cvCloneImage(dst1); IplImage *dst=cvCreateImage(cvSize((int)(dst3->width*SCALE_XX), (int)(dst3->height*SCALE_YY)), IPL_DEPTH_32F, 1); cvResize(dst3, dst, CV_INTER_LINEAR); cvNamedWindow("dst_window",CV_WINDOW_AUTOSIZE); cvShowImage("dst_window",dst); //------------------------------------------------------------------------------------------------------------- //-----------マッチング点を求める--------- cvMinMaxLoc(dst1,&min_inter1inkage,&max_inter1inkage,&min_point1,&max_point1,NULL); cvMinMaxLoc(dst2,&min_inter2inkage,&max_inter2inkage,&min_point2,&max_point2,NULL); printf("上 %f %f\n",(double)max_point1.x,(double)max_point1.y); printf("鏡 %f %f\n",(double)max_point2.x,(double)max_point2.y); //マッチング箇所を四角で描画 cvRectangle(scale_img,cvPoint(max_point1.x+rect1.x,max_point1.y+rect1.y),cvPoint(max_point1.x+rect1.x+temp_up->width,max_point1.y+rect1.y+temp_up->height),CV_RGB(255,0,0),3); cvRectangle(scale_img,cvPoint(max_point2.x+rect2.x,max_point2.y+rect2.y),cvPoint(max_point2.x+rect2.x+temp_side->width,max_point2.y+rect2.y+temp_side->height),CV_RGB(0,255,255),3); cvCircle(scale_img,cvPoint(max_point1.x+rect1.x,max_point1.y+rect1.y),10,CV_RGB(0,255,255),5,3,0); //画像を表示 cvNamedWindow("result",CV_WINDOW_AUTOSIZE); cvShowImage("result",scale_img); //類似度表示 printf("up_Detection %lf\n",max_inter1inkage); printf("side_Detection %lf\n",max_inter2inkage); //タイマー終了 int64 end = cv::getTickCount(); double elapsedMsec = ( end - start )*1000/cv::getTickFrequency(); //タイマー表示 std::cout << elapsedMsec <<"ms" <<std::endl; std::cout << std::endl; cvWaitKey(0); //メモリ解放 cvReleaseImage(&img); cvReleaseImage(&scale_img); cvReleaseImage(&copy_img1); cvReleaseImage(&copy_img2); cvReleaseImage(&grey_img1); cvReleaseImage(&grey_img2); cvReleaseImage(&dst1); cvReleaseImage(&dst2); cvDestroyWindow("result"); //メモリ解放 cvReleaseImage(&temp_up); cvReleaseImage(&temp_side); cvReleaseImage(&grey_temp_up); cvReleaseImage(&grey_temp_side); cvDestroyWindow("img_window"); return 0; }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

グレースケールなのに’
dst1=cvCreateImage(cvSize(abs(grey_img1->width-grey_temp_up->width)+1,abs(grey_img1->height-grey_temp_up->height)+1),IPL_DEPTH_32F,1); //領域確保
dst2=cvCreateImage(cvSize(abs(grey_img2->width-grey_temp_side->width)+1,abs(grey_img2->height-grey_temp_side->height)+1),IPL_DEPTH_32F,1); //領域確保
’でIPL_DEPTH_32Fで領域確保しているのが問題では?

投稿2016/11/17 05:47

MasahikoHirata

総合スコア3747

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

episteme

2016/11/17 05:51

いや、cvMatchTemplateの結果はfloat行列なんじゃね? IPL_DEPTH_32F でよくね?
yamata

2016/11/17 06:07

私もそのように考えて、IPL_DEPTH_32Fを使用しています。
guest

0

ベストアンサー

こんにちは。

とりあえず、cvSetImageROI()をコメントアウトしてみてはどうでしょうか?
その結果、同じassertionが発生するなら、結果画像サイズを間違っていることは間違いないです。何かミスがないかよ~~~く探してみましょう。

逆に、同じassertionが発生しなくなったらROIが有効です。その場合、結果エリアのサイズは(当たり前ですが)「ROIサイズ - テンプレートサイズ+1」になりますね。現在は結果画像サイズ計算にROIサイズは考慮されていないようです。

投稿2016/11/17 05:44

Chironian

総合スコア23272

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yamata

2016/11/17 05:56

コメントアウトしたのですが、同じエラーが出ました。
Chironian

2016/11/17 06:35

ならば、結果画像が間違っている筈です。 全ての関係するHeight, Width, type()を表示して、本当に間違いないか確認しましょう。 その際、似たものが2組あると片方直して、違う方を見ていたとかマヌケなことが起きやすいので、まずは片方のロジックを全てコメントアウトし、現象が再現することを確認してから着手するとよいですよ。 原因が良く分からない時にそれを追求する鉄則は、一歩一歩進めることです。迂遠に感じると思いますが、1度に1つの修正だけに止めておくと、却って解決が速いですよ。 また、下記にcvMatchTemplateのサンプルがあります。 http://opencv.jp/sample/matching.html このサンプルで使われている画像でやってみる、とか、逆にこのサンプルにyamataさんが使っている画像を入れてみるなどすると何か分かる筈です。
yamata

2016/11/17 06:44

一歩一歩進めて行きたいと思います。 まったく質問が変わるのですが、グレースケールの画像を読み込む時は、カラーの時と大きく変更する必要がある場合があるのでしょうか? 今回は、まったく同じ画像をグレースケールにしてから読み込もうとしているので、、、(読み込む前にグレースケールに変更済み)
Chironian

2016/11/17 06:48

なんとも言えません。カラーを取り扱えるけどグレースケールを取り扱えないような関数を使ってたら、それなりに大変更が必要でしょう。カラーもグレースケールも同じ呼び出し方で扱える関数しか使っていないなら僅かな変更で済むと思います。
yamata

2016/11/17 06:51

CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR 以上は、カラーにもグレースケールにも対応していると見て、使って読み込んでいたのですが、グレースケールになると読み込めなくなって
Chironian

2016/11/17 07:02

臨機応変にいきましょう。それでダメなら、CV_LOAD_IMAGE_ANYDEPTH を外してみると良さげです。それでもダメなら、CV_LOAD_IMAGE_GRAYSCALEに変えてみるなどです。 深度が8ビットでない画像フォーマットの画像は非常に少ないですから、積極的に16ビット画像等を取り扱いたい時以外はCV_LOAD_IMAGE_ANYDEPTHは不要と思います。
yamata

2016/11/17 07:09

CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR でやると、src.type()==dst.tape()のエラーになるんです。 そこで、上のプログラムの様に、CV_LOAD_IMAGE_GRAYSCALEに変更してみました。
Chironian

2016/11/17 07:19

それで良いのでは? もし、同じコードでカラーも読みたいのならCV_LOAD_IMAGE_ANYCOLORだけを指定してやってみるのも手です。あまり意味はないと思いますが。
yamata

2016/11/17 07:42

今までカラーで実行できた画像を上記のプログラムに入れるとエラーになりました。 グレースケールが駄目なのでしょうか?
Chironian

2016/11/17 07:53

そんなことはない筈です。 テンプレートマッチングはグレイスケールで行うことが多いです。 cvMatchTemplate()はカラーでもできるようなので、ちょっとびっくりしてます。 そのような時は、グレースケールへ変更する際に間違った修正をどこかでやってしまっているケースが多いです。 一旦、元のカラーに戻して、テンプレートマッチを片方だけにして動作することを確認後、再度グレイスケールに挑戦するのが良いと思います。 その際、問題を複雑にしないために、ROIは外しておきましょう。一歩一歩です。
yamata

2016/11/17 08:16

ROIを解除し実行してみたところ、エラーが出なくなりました。(CV_LOAD_IMAGE_ANYDEPTH | CV_LOAD_IMAGE_ANYCOLOR、CV_LOAD_IMAGE_GRAYSCALE) ROIに問題があったのでしょうか?
Chironian

2016/11/17 08:29

>>> cvSetImageROI()をコメントアウトしてみてはどうでしょうか? >> コメントアウトしたのですが、同じエラーが出ました。 > ROIを解除し実行してみたところ、エラーが出なくなりました。 なるほど。片方しかコメントアウトしてなかったのですね。 それでは検証にならないことは明らかです。頑張りましょう。 さて、ROIの範囲についてテンプレート画像を移動させて各位置での正規化相関値を計算し、その結果がdst画像へ保存されます。 ならば、dst画像のサイズはROIサイズからテンプレート画像サイズを引いて1加えたものになるのではないかと思いますが、如何でしょうか?
yamata

2016/11/17 08:39

dstは、217*128になりました。 >>grey_img1->width-grey_temp_up->width)+1,abs(grey_img1->height-grey_temp_up->height)+1 プログラムのこの部分にあたり、256-40+1=217、192-65+1であっています。
Chironian

2016/11/17 08:52

grey_img1に設定しているROIのサイズは(55, 70)ですね。 テンプレートサイズが(40, 65)ならば、55-40+1=16, 70-65+1=6が正しいと思いますよ。
yamata

2016/11/17 09:00

はい。わたしもそうだと思います。また、以前はそのサイズで表示されていました。
Chironian

2016/11/17 09:19

y> プログラムのこの部分にあたり、256-40+1=217、192-65+1であっています。 c> テンプレートサイズが(40, 65)ならば、55-40+1=16, 70-65+1=6が正しいと思いますよ。 y> はい。わたしもそうだと思います。また、以前はそのサイズで表示されていました。 最初の「あっています」の根拠は何だったのでしょうか? yamataさんも 16*6が正しいと思っていたのであれば、「あっていない」のではないですか? さて、カラーの時は、dst1のサイズが16*6となり、ROIありで正常に動作していたと言うことですね? しかし、グレイスケールに変更したら、特に変更していないのに217*128になってしまったということでしょうか? 流石にそれは考えにくいです。 > cvSize(abs(grey_img1->width-grey_temp_up->width)+1,abs(grey_img1->height-grey_temp_up->height)+1) 無意味なabs()をつけていますし、試行錯誤して苦しんだ気配があります。グレイスケールへ変更する際、ここも修正してませんか? カラーでうまく行っていた時の式へ戻しましょう。(grey_img1ではなくrect1を用いる) そうすればROIを付加しても通るのではないかと思います。
yamata

2016/11/17 09:32

>>最初の「あっています」の根拠は何だったのでしょうか? >>yamataさんも 16*6が正しいと思っていたのであれば、「あっていない」のではないですか? プログラムどおりに計算するとあっているので、あっていると書きました。 >無意味なabs()をつけていますし、試行錯誤して苦しんだ気配があります。グレイスケールへ変>更する際、ここも修正してませんか? >カラーでうまく行っていた時の式へ戻しましょう。(grey_img1ではなくrect1を用いる) >そうすればROIを付加しても通るのではないかと思います。 absは以前付けないとエラーがでるためつけました。 rectを用いたところ、通るようになりました。 dstサイズに問題があり、以前から問題のまま使用していたのかなと考えています。 ありがとうございました!
Chironian

2016/11/17 09:45

> プログラムどおりに計算するとあっているので、あっていると書きました。 「プログラムどおりに計算するとあっている」それは当たり前のことです。 yamataさんの設計と一致しているかどうかを確認しましょう。 バグは設計と異なる部分に潜んでます。それを追求しないとデバッグになりませんよ。 > absは以前付けないとエラーがでるためつけました。 ROIよりテンプレートの方が大きいと、cvSize()へ与えるサイズが負になりますので、cvSize()がエラーを出したのだと思います。 > rectを用いたところ、通るようになりました。 おめでとうございます。
episteme

2016/11/17 09:49

...何なんだ一体、独り相撲じゃねーか。 闇雲にいぢりまくって動けばOKみたいなコーディングしてないか?
yamata

2016/11/17 09:53

epistemeさん どういう意味でしょうか?
MasahikoHirata

2016/11/17 09:55

epistemeさん。今までの質問の履歴から判断されてください。でも何か気になる、育てたくなる質問者さんですので。暖かい目で。(おそらく会社命令での学習。ネジ屋さんも大変なのでしょう)
MasahikoHirata

2016/11/17 09:59

yamataさん逆ですよ。これだけの方が答えなくて良いのに英知を差し出したのですから。参考書や参考のサイト以上にあなたの課題に本気で答えられたのですから。過去からの私のコメントに従ってのデバッグプリントなどを見るとうれしく思います。頑張りましょう。
yamata

2016/11/17 10:12

みなさん親切にありがとうございます。 私自身ももっと勉強したいと思います。
guest

0

OpenCVも、呼出元のどの行でアサートしたかも分かりませんが、cvSetImageROIで指定した幅と高さを与えよとの回答あります。
http://stackoverflow.com/questions/6083625/cvmatchtemplate-function-giving-assertion-failed-error-opencv

投稿2016/11/17 05:16

編集2016/11/17 05:17
can110

総合スコア38256

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

episteme

2016/11/17 05:18

そか、ROIが絡むのか。
yamata

2016/11/17 05:20

ありがとうございます。 与えているとおもうのですが、、、
can110

2016/11/17 06:20

以下assert発生しているわけですから result.size() == cv::Size(std::abs(img.cols - templ.cols) + 1, std::abs(img.rows - templ.rows) + 1) result.type() == CV_32F 呼出元での上記の値をprintfして確認してはいかがでしょうか?
yamata

2016/11/17 06:40

サイズは218*128と正しい値が表示されました。 typeの表示とはどのようにするのでしょうか?
can110

2016/11/17 06:49

assert中の変数 result, img, templ が呼出元(自分で定義した)のどの変数に対応するかはヘルプを見ればわかるかと思います。 その変数.type()を呼び出せばよいのではないでしょうか?
yamata

2016/11/17 07:10

IPL_DEPTH_32Fを出力してみると、32が表示されます。 とんちんかんなことをしていたらすいません。
can110

2016/11/17 07:18

確認すべきはimage(=grey_img1), templ(=grey_temp_up), result(=dst1) のrows, cols, .size(), .type()の値です。いくつでしょうか? また、これらの値は、assertでの式を満たしますか?
yamata

2016/11/17 07:25

はい。何回も説明してもっらていますが、size(),type()の値がなにのことか把握できていません。 申し訳ありません。
episteme

2016/11/17 07:29

いやだから、assertionメッセージは"それらのうちどれかが不正だから停止した"って言うてるやないですか。じゃぁ怪しいのはどれなんだ? って訊いてるですよ。
yamata

2016/11/17 07:36

カラーで実行できる画像を、上記のプログラムで実行すると、エラーが出ます。 そのことから、imgに問題があり、type?に問題があると考えています。 しかし、そのtypeの確認方法がわかりません。(色々教えていただいていますが、まだわかりません、)
Chironian

2016/11/17 07:40 編集

横から失礼します。 cvMatchTemplate()へ与えているのは、IplImageで、assertでアクセスしているのはcv::Matです。 この間の変換方法を知らなかった場合、サクッとは出来ないと思いますよ。 で、上にもコメントしましたが、IplImageのdepthがcv::Matのtype()だろうと思われます。
episteme

2016/11/17 07:48 編集

読み込んだ直後のdepthとchannelじゃねぇの? カラーだとdepth=8u channel=3 あたりがフツー。 グレイスケール画像を読ませた直後、depthとchannelは? その値がカラーをグレイスケール変換した(うまくいった)ときと違うなら、そこらへんに原因が。 # 32floatだと思ってたら実は16uだったとか、そんな話してませんでしたっけ?(違ってたらごめん
episteme

2016/11/17 07:44

cv::Matのtype()はchannel数も含んでたような気が...
can110

2016/11/17 07:48

Chironian様補足ありがとうございます。なるほど。 念のため一時変数でIplImage→cv::Matしてtype(), .size()の値を確認すればよいかと思います。
yamata

2016/11/17 07:55

もともとカラー画像で読み込んでいた時は、IPL_DEPTH_8U,3で読み込みました。 しかし、読み込みたい画像自体がグレースケール画像なので、上記のプログラムの様に、 IPL_DEPTH_8U, 1に変更しました。 depthは8?が表示されます。channelshaは1?が表示されます。
yamata

2016/11/17 08:17

ROIを全て解除し実施したところエラーがでなくなりました。
can110

2016/11/17 08:20

printf( "%d", CV_32F)の結果はいくつですか? これがdepth(=cvMat::type()と同じ?)=8でなければ、assertが発生します。
yamata

2016/11/17 08:23

5と表示されました。
can110

2016/11/17 08:37

念のため、以下のように一時変数を用いたtype()の結果はいくつになるでしょうか? cv::Mat tmp( dst1); printf( "%d\n", tmp.type()); 結果が「5」=CV_32Fならtypeは問題なし(→サイズに問題あり)。 「8」=depthと同じなら、型が異なるのが原因です。この場合の解決法は私には分かりません。 別回答の流れから推測すると、サイズの問題も捨てきれないと思います。
yamata

2016/11/17 09:01

0が表示されました。
can110

2016/11/17 10:03

ではまだassert発生するはずですが、おかしいですよね? とはいえ、解決おめでとうございます。 できれば、なぜassert発生しないのかの原因まで追究しておいたほうが今後のためによいかと思います。
guest

0

assertionメッセージそのまんまじゃないですか?
"マッチ結果を納める領域の幅/高もしくは型が合ってない"って言うてますけど。
imageの幅/高, templateの幅/高, 型 を確認しました?

投稿2016/11/17 05:12

episteme

総合スコア16614

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yamata

2016/11/17 05:13

ありがとうございます。確認済みです。
episteme

2016/11/17 05:16 編集

だったらそんなassertion出るはずないやん。 結果領域の幅/高/型との整合取れてますか? 確認ってそーゆーことよ?
yamata

2016/11/17 05:20

申し訳ありません。幅と高さの確認はしましたあ、型の確認をしていませんでした。 方の確認はどのようにしたらいいのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問