スポンサーリンク

| キーワード:

MISTでGIFを読んでOpenCVで表示する

 

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軸方向の位置

 

http://mist.murase.m.is.nagoya-u.ac.jp/document/classmist_1_1array2.html#adaacb132a18b787f30dbc61c00a2a846

 

mistinstance.operator() ( x , y );

 

 

 

 

 

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)


この記事のトラックバックURL: