2016/10/28

WPF(Livet)とOpenCVSharpで画像表示

OpenCVSharpのShowImageでも画像表示できますが、WPFのImageを使って表示します。
こんな感じになります。


まずはXAMLです。Grid内だけ変えています。
    
        
        



次は、ModelViewです。
using Microsoft.Win32;
using System.Windows;
using System.Windows.Media.Imaging;
using OpenCvSharp;
using OpenCvSharp.Extensions;

namespace LivetSample.ViewModels
{
    public class MainWindowViewModel : ViewModel
    {
        public void Initialize()
        {
        }

        #region FileUri変更通知プロパティ
        private string _FileUri;

        public string FileUri
        {
            get
            { return _FileUri; }
            set
            { 
                if (_FileUri == value)
                    return;
                _FileUri = value;
                RaisePropertyChanged();
            }
        }
        #endregion

        #region WBitmap変更通知プロパティ
        private WriteableBitmap _WBitmap;

        public WriteableBitmap WBitmap
        {
            get
            { return _WBitmap; }
            set
            { 
                if (_WBitmap == value)
                    return;
                _WBitmap = value;
                RaisePropertyChanged();
            }
        }
        #endregion


        #region FileOpenCommand
        private ViewModelCommand _FileOpenCommand;

        public ViewModelCommand FileOpenCommand
        {
            get
            {
                if (_FileOpenCommand == null)
                {
                    _FileOpenCommand = new ViewModelCommand(FileOpen);
                }
                return _FileOpenCommand;
            }
        }

        public void FileOpen()
        {
            OpenFileDialog dlg = new OpenFileDialog();
            dlg.Title = "ファイルを開く";
            dlg.Filter = "画像ファイル|*.jpg";
            if (dlg.ShowDialog() == true)
            {
                FileUri = dlg.FileName;
                
                using(var img = new IplImage(FileUri))
                {
                    WBitmap = img.ToWriteableBitmap();
                }
            }
        }
        #endregion
    }
}









Livetを利用したWPFでファイル選択ダイヤログを作成する

Windowsアプリケーションで、ファイル選択ダイヤログを作成したいということは多いと思うので、
サンプルを載せます。

 

まずは、XAML。Grid内しか変えていません。
    
        
        

次に、ModelView。
ちなみにModelは何も書いていません。
using Microsoft.Win32;

namespace LivetSample.ViewModels
{
    public class MainWindowViewModel : ViewModel
    {
        public void Initialize()
        {
        }

        #region FileUri変更通知プロパティ
        private string _FileUri;

        public string FileUri
        {
            get
            { return _FileUri; }
            set
            { 
                if (_FileUri == value)
                    return;
                _FileUri = value;
                RaisePropertyChanged();
            }
        }
        #endregion

        #region FileOpenCommand
        private ViewModelCommand _FileOpenCommand;

        public ViewModelCommand FileOpenCommand
        {
            get
            {
                if (_FileOpenCommand == null)
                {
                    _FileOpenCommand = new ViewModelCommand(FileOpen);
                }
                return _FileOpenCommand;
            }
        }

        public void FileOpen()
        {
            OpenFileDialog dlg = new OpenFileDialog();
            dlg.Title = "ファイルを開く";
            dlg.Filter = "画像ファイル|*.*";
            if (dlg.ShowDialog() == true)
            {
                FileUri = dlg.FileName;
            }
        }
        #endregion
    }
}


2016/08/17

Cueシートで音声ファイルを分割する(Wav+Cue→Wav)

cuetools, shntoolsをインストールします。
sudo apt-get install shntools

そして、次を実行します。
shnsplit fuga.wav -f hoge.cue -t %n-%t

これでfuga.wavをhoge.cueに従って分割します。
分割後は-tオプションで指定しているので"(曲順)-(タイトル名)"となります。

他のオプションとして、
-d  出力先を指定する。出力先を一階層下にしてまとめると便利です。
-O always  上書き保存を許可する

2015/04/25

Arduino IDEの文字化けを直す

Ubuntu 14.04にArduino IDEをインストールしたのはいいのですが、
起動してみた所、下のように文字化けして豆腐状態になっています。
(1)メニュー部の文字化けを直す。
まず、メニュー部の文字化けを直します。

これはArduino IDEの問題ではなく、Javaで作ったアプリケーション全体の問題です。
Javaが日本語のフォントにアクセスできるようにすればこれは解決できます。

まず、何のJavaを使用しているのかを確認します。 
java -version
java version "1.6.0_34"
OpenJDK Runtime Environment (IcedTea6 1.13.6) (6b34-1.13.6-1ubuntu0.14.04.1)
OpenJDK 64-Bit Server VM (build 23.25-b01, mixed mode)

今回はOpenJDK 1.6を使用しているので、
OpenJDKの所定のディレクトリに日本語のフォントのリンクを貼ります。
cd /usr/lib/jvm/java-6-openjdk-amd64/jre/lib
sudo mkdir fonts/fallback -p
sudo ln -s /usr/share/fonts/truetype/takao-gothic/TakaoPGothic.ttf

これでおkです。