Makaleye RGB ile kısa bilgi vererek başlamak istiyorum.
RGB renk uzayı (ya da KYM renk uzayı), İngilizcedeki 'Red' 'Green' 'Blue', yani 'Kırmızı' 'Yeşil' 'Mavi' kelimelerinin baş harflerinden ismini alan bir renk uzayı olup en sık kullanılanlardandır.
RGB Resim 3 boyutlu bir matrisi ifade eder. EmguCV de BGR olarak sıralama yapılmıştır. İlk kanal mavi, ikinci kanal yeşil, üçüncü kanal ise kırmızıdır.
Renk uzayları hakkında detaylı bilgi için aşağıdaki linkteki makalemi okuyabilirsiniz.
http://www.caglargul.com/2016/11/renk-uzaylari.html
UYGULAMA 1:
UYGULAMA 2: Kenarlık Oluşturma
RGB renk uzayı (ya da KYM renk uzayı), İngilizcedeki 'Red' 'Green' 'Blue', yani 'Kırmızı' 'Yeşil' 'Mavi' kelimelerinin baş harflerinden ismini alan bir renk uzayı olup en sık kullanılanlardandır.
RGB Resim 3 boyutlu bir matrisi ifade eder. EmguCV de BGR olarak sıralama yapılmıştır. İlk kanal mavi, ikinci kanal yeşil, üçüncü kanal ise kırmızıdır.
Renk uzayları hakkında detaylı bilgi için aşağıdaki linkteki makalemi okuyabilirsiniz.
http://www.caglargul.com/2016/11/renk-uzaylari.html
UYGULAMA 1:
ColorDialog dlg = new ColorDialog(); if (dlg.ShowDialog() != DialogResult.OK) return; Color color = dlg.Color; Bgr redBgr = new Bgr(color.B, color.G, color.R); m_originalImage = new Image(m_pictureBoxOriginalImage.Width, m_pictureBoxOriginalImage.Height, redBgr); m_pictureBoxOriginalImage.Image = m_originalImage.ToBitmap();
UYGULAMA 2: Kenarlık Oluşturma
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
private Image<bgr, byte> m_originalImage; | |
public MainForm() | |
{ | |
InitializeComponent(); | |
} | |
private void m_buttonOK_Click(object sender, EventArgs e) | |
{ | |
try | |
{ | |
ColorDialog dlg = new ColorDialog(); | |
if (dlg.ShowDialog() != DialogResult.OK) | |
return; | |
Color color = dlg.Color; | |
Bgr redBgr = new Bgr(color.B, color.G, color.R); | |
m_originalImage = new Image<bgr, byte>(m_pictureBoxOriginalImage.Height, m_pictureBoxOriginalImage.Width, redBgr); | |
m_pictureBoxOriginalImage.Image = m_originalImage.ToBitmap(); | |
} | |
catch (Exception ex) { | |
MessageBox.Show(ex.GetType().Name + " " + ex.Message); | |
} | |
} | |
private void m_buttonFillRectangle_Click(object sender, EventArgs e) | |
{ | |
try | |
{ | |
byte[,,] pixeldata = m_originalImage.Data; | |
Bgr blueimg = new Bgr(255, 0, 0); | |
Bgr redimg = new Bgr(0, 0, 255); | |
Bgr greenimg = new Bgr(0, 255, 0); | |
Bgr whiteimg = new Bgr(255, 255, 255); | |
for (int i = 0; i < m_pictureBoxOriginalImage.Width; ++i) | |
{ | |
for (int j = 0; j < 5; ++j) | |
{ | |
m_originalImage[i, j] = blueimg; | |
} | |
} | |
for (int i = 0; i < m_pictureBoxOriginalImage.Width; ++i) | |
{ | |
for (int j = m_pictureBoxOriginalImage.Height-5; j < m_pictureBoxOriginalImage.Height; ++j) | |
{ | |
m_originalImage[i, j] = redimg; | |
} | |
} | |
for (int i = 0; i < 5; ++i) | |
{ | |
for (int j = 0; j < m_pictureBoxOriginalImage.Height; ++j) | |
{ | |
m_originalImage[i, j] = greenimg; | |
} | |
} | |
for (int i = m_pictureBoxOriginalImage.Width-5; i < m_pictureBoxOriginalImage.Width; ++i) | |
{ | |
for (int j = 0; j < m_pictureBoxOriginalImage.Height; ++j) | |
{ | |
m_originalImage[i, j] = whiteimg; | |
} | |
} | |
m_pictureBoxOriginalImage.Image = m_originalImage.ToBitmap(); | |
} | |
catch (Exception ex) | |
{ | |
MessageBox.Show(ex.GetType().Name + " " + ex.Message); | |
} | |
} | |
} |