C#で画像処理を行いたいのですが、フィルターを適用する前に2つの画像を整列させる必要があります。これを行うには、小さな長方形のセクションの固定点で画像をスキャンします。これにより、ビットマップクラスを使用する必要があると思います。
このセクションには大量の白いピクセルがあるので、画像を横切る大きな白い水平バーがあるので、この領域の平均ピクセル値を取得してy軸のシフトを見つけたいと思います。
x軸は両方の画像で同じになります。最小値を検索できるように、小さいものから大きいもの、正と負まで、シフト値が異なるいくつかのテスト画像を設定したいと思います。
これには、画像を少量移動するために画像上にスクロールバーが必要になります。私はC#にまったく慣れておらず、低レベルのプログラマーです。次のコードを使用して、pictureBox1の画像を取得しようとしています。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing.Imaging;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace imageAlign
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Bitmap myImage = (Bitmap)pictureBox1.Image;
OpenFileDialog ofd = new OpenFileDialog();
if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK) ;
{
pictureBox1.Image = Image.FromFile();
// this.pictureBox1.Image = myImage;
}
}
}
}
Image.FromFile();
フォームのボタンをクリックしたときに画像を選択したいので、何も渡さずに残しました。現在、ボタンと画像ボックスは1つしかありません。