c++/CLIでのcv::imread

C++/CLIOpenCVを使っていた時にimreadで動画が読めこめなかった。
文字コードの問題かと思ったがどうやっても読み込めなかったので、
仕方なくバイナリで読み込んでデコードすることにした。
色々雑だけどとりあえずメモ。

cli::array<uchar>^ s = System::IO::File::ReadAllBytes(filename);  
int n = s->Length;  
std::vector<uchar> v(n);  
for(int i = 0; i < n; i++){  
  v[i] = s[i];  
}  
cv::Mat m(v);  
cv::Mat src = cv::imdecode(v, 0);