Bu uygulamada EmguCV nin makeborder sınıfını kullanarak görüntülere nasıl kenarlık ekleneceğini göstereceğim. Aşağıdaki uygulamada birden fazla kenarlık stilini resme uygulayarak farklılıklarını göstermeye çalıştım.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public partial class MainForm : Form | |
{ | |
private Image<bgr, byte> m_originalImage; | |
private static void fillSizeInfo(Label label, Mat m) | |
{ | |
label.Text = m.Height + "x" + m.Width; | |
} | |
public MainForm() | |
{ | |
InitializeComponent(); | |
} | |
private void MainForm_Load(object sender, EventArgs e) | |
{ | |
try | |
{ | |
Array borderTypes = Enum.GetValues(typeof(BorderType)); | |
foreach (BorderType bt in borderTypes) | |
m_comboBoxBorderTypes.Items.Add(bt); | |
m_comboBoxBorderTypes.SelectedIndex = 0; | |
} | |
catch (Exception ex) | |
{ | |
MessageBox.Show(ex.Message); | |
} | |
} | |
private void m_buttonOK_Click(object sender, EventArgs e) | |
{ | |
try | |
{ | |
OpenFileDialog dlg = new OpenFileDialog(); | |
if (dlg.ShowDialog() != DialogResult.OK) | |
return; | |
m_originalImage = new Image<bgr, byte>(dlg.FileName); | |
m_pictureBoxOriginalImage.Image = m_originalImage.ToBitmap(); | |
fillSizeInfo(m_labelOriginalSize, m_originalImage.Mat); | |
} | |
catch (Exception ex) { | |
MessageBox.Show(ex.GetType().Name + " " + ex.Message); | |
} | |
} | |
private void m_buttonMakeBorder_Click(object sender, EventArgs e) | |
{ | |
try | |
{ | |
if (m_originalImage == null) { | |
MessageBox.Show("You should choose an image"); | |
return; | |
} | |
Mat dest = new Mat(); | |
CvInvoke.CopyMakeBorder(m_originalImage, dest, 50, 50, 50, 50, (BorderType)m_comboBoxBorderTypes.SelectedItem, new MCvScalar(0, 255, 255)); | |
using (Image<bgr, byte> img = new Image<bgr, byte>(dest.Bitmap)) | |
{ | |
m_pictureBoxResult.Image = img.ToBitmap(); | |
fillSizeInfo(m_labelResultSize, dest); | |
} | |
} | |
catch (Exception ex) | |
{ | |
MessageBox.Show(ex.GetType().Name + " " + ex.Message); | |
} | |
} | |
} |