スポンサーリンク
OpenCVではgifは扱えない
MISTでgifの読み込みができる。
#include <Mist/include/mist/mist.h> #include <Mist/include/mist/io/gif.h> #include <OpenCV/include/opencv2/opencv.hpp> #include <OpenCV/include/opencv2/highgui/highgui.hpp> #pragma comment(lib,"OpenCV/lib/x86/vc12/lib/opencv_core249") #pragma comment(lib,"OpenCV/lib/x86/vc12/lib/opencv_highgui249.lib") int _tmain(int argc, _TCHAR* argv[]) { typedef mist::rgb< unsigned char > value_type; typedef mist::array2< value_type > image_type; image_type mistimg; if (!mist::read_gif(mistimg, "C:\\test.gif")){ return 1; } else{ cv::Mat cvimage(mistimg.height(), mistimg.width(), CV_8UC3); for (int x = 0; x < mistimg.width(); x++){ for (int y = 0; y < mistimg.height(); y++){ cv::Vec3b p; p.val[0] = mistimg(x, y).r; p.val[1] = mistimg(x, y).g; p.val[2] = mistimg(x, y).b; cvimage.at<cv::Vec3b>(y, x) = p; } } cv::namedWindow("hoge"); cv::imshow("hoge", cvimage); cv::waitKey(0); } getchar(); return 0; }
mist側:
画像の読み込み
bool read_gif(読み込む先のMISTコンテナ , ファイル名)
Mist/include/mist/io/gif.hをインクルード
bool mist::read_gif (
array2< T, Allocator > & image,
const std::string & filename
);
http://mist.murase.m.is.nagoya-u.ac.jp/document/group__image__gif__group.html
画素へのアクセス
operator() ( X座標, Y座標)
reference mist::array2< T, Allocator >::operator() (
size_type i,
size_type j,
size_type = 0
);
i:コンテナ内のX軸方向の位置
jコンテナ内のY軸方向の位置
mistinstance.operator() ( x , y );