この記事について

画像の並べ

ソースコード

namespace OpenCvSharpWithWpf {

	/// <summary>
	/// MainWindow.xaml の相互作用ロジック
	/// </summary>
	public partial class MainWindow : Window
	{
		public MainWindow()
		{
			InitializeComponent();
			// OpenCvSharp をダウンロードする。
			// http://code.google.com/p/opencvsharp/
			// Open CV にパスが通っていることを確認する。
			// .NET 4.0 の WPF のプロジェクトを作る。
			// OpenCvSharp.dll と OpenCvSharp.Extensions.dll への参照を追加する。
			// (このプロジェクトファイルでは OpenCvSharpDlls 内にファイルをコピーして、参照を追加した。)
			// ここから下のコードを追加する。
			// 普段は using OpenCvSharp; とかしてる。
			var openFileDialog = new Microsoft.Win32.OpenFileDialog();
			if (openFileDialog.ShowDialog() != true) { return; }
			OpenCvSharp.IplImage loadedIplImage;
			try { loadedIplImage = new OpenCvSharp.IplImage(openFileDialog.FileName); }
			catch { return; }
			var srcIplImage = new OpenCvSharp.IplImage(30, 30, loadedIplImage.Depth, loadedIplImage.NChannels);
			OpenCvSharp.Cv.Resize(loadedIplImage, srcIplImage);
			Func<System.Windows.Controls.Image> getImageFunc = new Func<System.Windows.Controls.Image>(() =>
			{
				var iplImage = srcIplImage.Clone();
				var bitmapSource = OpenCvSharp.Extensions.BitmapSourceConverter.ToBitmapSource(iplImage);
				var wpfImage = new System.Windows.Controls.Image() { Stretch = System.Windows.Media.Stretch.None };
				wpfImage.Source = bitmapSource;
				return wpfImage;
			});
			var horizontalStackPanel = new System.Windows.Controls.StackPanel() { Orientation = System.Windows.Controls.Orientation.Horizontal };
			var verticalStackPanel = new System.Windows.Controls.StackPanel() { Orientation = System.Windows.Controls.Orientation.Vertical };
			var uniformGrid = new System.Windows.Controls.Primitives.UniformGrid() { Rows = 2, Columns = 3 };
			var wrapPanel = new System.Windows.Controls.WrapPanel() { Width = srcIplImage.Width * 2 };
			for (int i = 0; i < 5; i++)
			{
				horizontalStackPanel.Children.Add(getImageFunc());
				verticalStackPanel.Children.Add(getImageFunc());
				uniformGrid.Children.Add(getImageFunc());
				wrapPanel.Children.Add(getImageFunc());
			}
			var windowContent = new System.Windows.Controls.Primitives.UniformGrid() { Rows = 2, Columns = 2 };
			windowContent.Children.Add(horizontalStackPanel);
			windowContent.Children.Add(verticalStackPanel);
			windowContent.Children.Add(uniformGrid);
			windowContent.Children.Add(wrapPanel);
			this.Content = windowContent;
			this.SizeToContent = System.Windows.SizeToContent.WidthAndHeight;
		}
	}

} }}

実行結果

Result_121204.png

ソースコード

最後に


添付ファイル: fileOpenCvSharpWithWpf_121204-2344.zip 899件 [詳細] fileResult_121204.png 986件 [詳細]

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2012-12-08 (土) 14:29:51