私はチャンネルフィルタリングのためにAForge.netを使用しています.3つのボタン、赤、青、緑を持っています。 ボタンをクリックすると、赤いチャンネルのフィルターが適用されます。しかし、青いボタンをクリックすると赤と重なり、画像が暗くなります。画像のフィルタを削除します
ブルーがクリックされたときに赤のチャンネルを「処分」する方法は誰も知っていますか?以下は私のコードのスニペットです。
private void redchannel_Click_1(object sender, EventArgs e)
{
try
{
pictureBox1.Image = pic;
pictureBox2.Image = pic2;
// create filter
ChannelFiltering filter = new ChannelFiltering();
// set channels' ranges to keep
filter.Red = new IntRange(0, 255);
filter.Green = new IntRange(255, 255);
filter.Blue = new IntRange(255, 255);
// apply the filter
filter.ApplyInPlace(pic2);
}
catch (Exception)
{
throw new ApplicationException("Failed loading image");
}
}
private void bluechannel_Click_1(object sender, EventArgs e)
{
try
{
pictureBox1.Image = pic;
pictureBox2.Image = pic2;
// create filter
ChannelFiltering filter = new ChannelFiltering();
// set channels' ranges to keep
filter.Red = new IntRange(255, 255);
filter.Green = new IntRange(255, 255);
filter.Blue = new IntRange(0, 255);
// apply the filter
filter.ApplyInPlace(pic2);
}
catch (Exception)
{
throw new ApplicationException("Failed loading image");
}
}
private void greenchannel_Click_1(object sender, EventArgs e)
{
try
{
pictureBox1.Image = pic;
pictureBox2.Image = pic2;
// create filter
ChannelFiltering filter = new ChannelFiltering();
// set channels' ranges to keep
filter.Red = new IntRange(255, 255);
filter.Green = new IntRange(0, 255);
filter.Blue = new IntRange(255, 255);
// apply the filter
filter.ApplyInPlace(pic2);
}
catch (Exception)
{
throw new ApplicationException("Failed loading image");
}
}
コード分解は良いことです! –
hahaはい合意しました! – LouisL