0
پردازش تصویر در سی شارپ
سلام ، کسی هست که در زمینه پردازش تصویر در c# کار کرده باشه؟ لطفا منابع فارسی و انگلیسی در این زمینه معرفی کنید. با تشکر
3 پاسخ
0
سلام
پردازش چهره منظورتون هست؟
1
البته بنده مبتدی برنامه نویسی هستم ولی بهترین زبان برای برنامه نویسی زبان سی ++ و استفاده از کتابخانه opencv هست .
1
سلام دوست عزیز این کد واسه پردازش تصویر امیدوارم بدردتون بخوره
منبع: پردازش تصویر
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace Image_Proccessing { public partial class Form1 : Form { public Form1() { InitializeComponent(); } int count = 0; int count1 = 0; int ix = 0; Bitmap bimpx,bimpx1; private void button1_Click(object sender, EventArgs e) { string x; openFileDialog1.ShowDialog(); x = System.Windows.Forms.DialogResult.OK.ToString(); if ( x=="OK") { pictureBox1.Load(openFileDialog1.FileName); bimpx = new Bitmap(openFileDialog1.FileName); listBox1.Items.Add("اندازه تصویر = " + pictureBox1.Image.Width.ToString() + " در " + pictureBox1.Image.Height.ToString() + " = " + (pictureBox1.Image.Width * pictureBox1.Image.Height).ToString() + " پیکسل"); } } private void button2_Click(object sender, EventArgs e) { //On Error Resume Next VBConversions Warning: On Error Resume Next not supported in C# listBox2.Items.Clear(); listBox3.Items.Clear(); count = 0; int i,a; int j,b; a = pictureBox1.Image.Height; b = pictureBox1.Image.Width; for (i = 0; i < b; i++) { for (j = 0; j { add2list(bimpx.GetPixel(i, j).ToString()); Application.DoEvents(); } } listBox1.Items.Add("تعداد رنگ ها = " + count.ToString()); } private void add2list(string col) { if (listBox2.Items.Contains(col)) { listBox3 .Items[listBox2.FindStringExact(col)] = System.Convert.ToInt32(listBox3 .Items[listBox2 .FindStringExact(col)]) + 1; } else { listBox2.Items.Add(col); listBox3.Items.Add(1); count += 1; } } private void listBox2_SelectedIndexChanged(object sender, EventArgs e) { listBox3.SelectedIndex = listBox2.SelectedIndex; } private void button4_Click(object sender, EventArgs e) { string x; openFileDialog1.ShowDialog(); x = System.Windows.Forms.DialogResult.OK.ToString(); if ( x=="OK") { pictureBox2.Load(openFileDialog1.FileName); bimpx1 = new Bitmap(openFileDialog1.FileName); listBox6.Items.Add("اندازه تصویر = " + pictureBox2.Image.Width.ToString() + " در " + pictureBox2.Image.Height.ToString() + " = " + (pictureBox2.Image.Width * pictureBox2.Image.Height).ToString() + " پیکسل"); } } private void add2list1(string col) { if (listBox5.Items.Contains(col)) { listBox4.Items[listBox5.FindStringExact(col)] = System.Convert.ToInt32(listBox4.Items[listBox5.FindStringExact(col)]) + 1; } else { listBox5.Items.Add(col); listBox4.Items.Add(1); count1 += 1; } } private void button3_Click(object sender, EventArgs e) { //On Error Resume Next VBConversions Warning: On Error Resume Next not supported in C# listBox5.Items.Clear(); listBox4.Items.Clear(); count1 = 0; int i, a; int j, b; a = pictureBox2.Image.Height; b = pictureBox2.Image.Width; for (i = 0; i < b; i++) { for (j = 0; j < a; j++) { add2list1(bimpx1.GetPixel(i, j).ToString()); Application.DoEvents(); } } listBox6.Items.Add("تعداد رنگ ها = " + count1.ToString()); } private void listBox5_SelectedIndexChanged(object sender, EventArgs e) { listBox4.SelectedIndex = listBox5.SelectedIndex; } private void Form1_Load(object sender, EventArgs e) { this.WebCamCapture.TimeToCapture_milliseconds = 1; WebCamCapture.Start(0); label7.Text = ""; label8.Text = ""; label9.Text = ""; label10.Text = ""; } private void button5_Click(object sender, EventArgs e) { //گزارش وجود اختلاف در سایز int A, B, C, D,index,j; string s, s1; A = pictureBox1.Image.Height; B = pictureBox1.Image.Width; C = pictureBox2.Image.Height; D = pictureBox2.Image.Width; if ((A == C) && (B == D)) { label7.Text="در سایز تصاویر اختلافی دیده نمی شود"; } else { if ((A != C) && (B != D)) { label7.Text = "در عرض و طول دو تصویر اختلاف وجود دارد"; } else if (A != C ||(B != D) ) { label7.Text = "در دو تصویر اختلاف وجود دارد"; } } //گزارش اختلاف تعداد رنگ if ((count == 0) && (count1 == 0)) { label8.Text = "تصویری وارد نشده است"; } else { if (count != count1) { label8.Text = "بین رنگ تصاویر اختلاف دیده می شود"; } else { label8.Text = "بین رنگ تصاویر اختلاف دیده نمی شود"; } } //فردیس-سپانته-مستقیم تا آتش نشانی-میدان ارتش کوجه دوم داخل-ارایشگاه زنانه باجه تلفنومغازه شبستری //گزارش اختلاف تعداد پیکسل if (listBox3.Items.Count < listBox4.Items.Count) { j = listBox3.Items.Count; } else { j = listBox4.Items.Count; } for (index=0; index < j; index ++) { s = listBox3.Items[index].ToString(); s1 = listBox4.Items[index].ToString(); if (s != s1) { label9.Text = "در تعداد پیکسل رنگ اختلاف است"; label10.Text = "-----------------------------------"; } else { label9.Text = "در تعداد پیکسل رنگ اختلاف نیست"; label10.Text = "-----------------------------------"; } } } private void WebCamCapture_ImageCaptured(object source, WebCam_Capture.WebcamEventArgs e) { this.pictureBox3.Image = e.WebCamImage; } private void button6_Click(object sender, EventArgs e) { int alan = ix; pictureBox3.Image.Save("d:pic0" + ix++ + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg); pictureBox1.Load("d:pic0" + alan + ".jpg"); bimpx = new Bitmap("d:pic0" + alan + ".jpg"); listBox1.Items.Add("اندازه تصویر = " + pictureBox1.Image.Width.ToString() + " در " + pictureBox1.Image.Height.ToString() + " = " + (pictureBox1.Image.Width * pictureBox1.Image.Height).ToString() + " پیکسل"); } private void button7_Click(object sender, EventArgs e) { int alan = ix; pictureBox3.Image.Save("d:pic0" + ix++ + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg); pictureBox2.Load("d:pic0" + alan + ".jpg"); bimpx1 = new Bitmap("d:pic0" + alan + ".jpg"); listBox6.Items.Add("اندازه تصویر = " + pictureBox2.Image.Width.ToString() + " در " + pictureBox2.Image.Height.ToString() + " = " + (pictureBox2.Image.Width * pictureBox2.Image.Height).ToString() + " پیکسل"); } private void button8_Click(object sender, EventArgs e) { System.Diagnostics.Process.Start("http://WWw.SourceCodes.ir"); } } }