実現したいこと
OpenCVをVisual Studio 2022でC++を用いて使用し、画像を読み込み、読み込んだものを出力する。
前提
windows11です。
OpenCVの動作確認のために、imshow関数で空のwindowを出力させることには成功しています。
発生している問題・エラーメッセージ
新しくフォルダを作る前
1.visual studio内で表示されたもの
ハンドルされない例外が 0x00007FF9A9BB531C で発生しました (ConsoleApplication1.exe 内): Microsoft C++ の例外: cv::Exception (メモリの場所 0x0000005F26EFF050)。
2.別ウィンドウがポップして表示されたもの
[ WARN:0@0.059] global loadsave.cpp:248 cv::findDecoder imread_(''): can't open/read file: check file path/integrity
OpenCV(4.8.0) Error: Assertion failed (size.width>0 && size.height>0) in cv::imshow, file C:\GHA-OCV-1_work\ci-gha-workflow\ci-gha-workflow\opencv\modules\highgui\src\window.cpp, line 971
フォルダを作り直した後
1.visual studio内で表示されたもの
ハンドルされない例外が 0x00007FF9A9BB531C で発生しました (ConsoleApplication1.exe 内): Microsoft C++ の例外: cv::Exception (メモリの場所 0x0000006EC694F1C0)。
2.別ウィンドウがポップして表示されたもの
[ WARN:0@0.066] global loadsave.cpp:248 cv::findDecoder imread_(''): can't open/read file: check file path/integrity
OpenCV(4.8.0) Error: Assertion failed (size.width>0 && size.height>0) in cv::imshow, file C:\GHA-OCV-1_work\ci-gha-workflow\ci-gha-workflow\opencv\modules\highgui\src\window.cpp, line 971
該当のソースコード
新しくフォルダを作る前
#include<iostream>
#include <opencv2/opencv.hpp>
int main(int argc , const char * argv[])
{
cv::Mat img;
img =cv::imread("C:\Users\(略)\Desktop\sake.png");
cv::imshow("test", img);
cv::waitKey(10000);
return 0;
}
フォルダを作り直した後
#include<iostream>
#include <opencv2/opencv.hpp>
int main(int argc , const char * argv[])
{
cv::Mat img;
img =cv::imread("C:\picture\sake.png");
cv::imshow("test", img);
cv::waitKey(10000);
return 0;
}
試したこと
imread関数を使って画像を読み込むときに画像のパスを「"C:\Users~.png"」のようにフルで入力すると、UsersのUより後ろに赤の波線が表示されてしまい、ユニバーサル文字名が正しくない(エラーコードE0965)と表示されてしまいます。そのコードを検索して\が1つだといけないのかと思い2つにしたところ波線は消え、ビルドした結果も問題はありませんでした。
しかしいざデバックしてみると、ハンドルされていない例外が発生したとエラーがでてうまく画像が表示されません。
そこでフォルダの名前が「ユーザー」とカタカナなのがだめなのかと思い、新しくpictureとフォルダを作り、そこに読み込みたい写真をいれました。
結果としては、まず\が1つでも赤の波線が表示されなくなりました。しかしデバックをすると、ハンドルされない例外が発生したとエラーが出てしまいました。
ここでフォルダ名は関係ないのだなと思い他の画像で試したのですがそれでも同じエラーがでてしまいました。
現在何が間違っているのか一切わからず万策尽きた状態です。

回答1件
あなたの回答
tips
プレビュー