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");
}
}
}