shahe_iran
پنج شنبه 20 مهر 1391, 22:45 عصر
با سلام
دوستان چرا این خطا رخ میده و راه برطرف کردنش چیه؟
من این کذ زیر رو به چند طریق مختلف مینویسم اما همین خطا تکرار میشه!
93850
private void Form1_Load(object sender, EventArgs e)
{
Thread t1 = new Thread(() =>
{
Capture c1 = new Capture();
var img=new Image<Bgr,byte>(640,480);
Image<Gray, Byte> gray;
Image<Gray, Byte> cannyEdges;
Gray cannyThreshold;
Gray cannyThresholdLinking;
Gray circleAccumulatorThreshold;
LineSegment2D[]lines;
double slope_l1, slope_l2;
double angle_l1, angle_l2;
while (true)
{
img = c1.QueryFrame();
pictureBox3.Image = img.Bitmap;
gray = img.Convert<Gray, Byte>().PyrDown().PyrUp();
cannyThreshold = new Gray(180);
cannyThresholdLinking = new Gray(120);
circleAccumulatorThreshold = new Gray(500); ;
cannyEdges = gray.Canny(cannyThreshold, cannyThresholdLinking);
lines = cannyEdges.HoughLinesBinary(
1,
Math.PI / 45.0,
20,
30,
10
)[0];
Image<Bgr, byte> ax = new Image<Bgr, byte>(640, 480);
foreach (LineSegment2D l1 in lines)
{
foreach (LineSegment2D l2 in lines)
{
if (Math.Abs(l1.P2.X - l1.P1.X) != 0 &&
Math.Abs(l2.P2.X - l2.P1.X) != 0)
{
slope_l1 = Math.Abs(l1.P2.Y - l1.P1.Y) / Math.Abs(l1.P2.X - l1.P1.X);
slope_l2 = Math.Abs(l2.P2.Y - l2.P1.Y) / Math.Abs(l2.P2.X - l2.P1.X);
angle_l1 = Math.Atan(slope_l1) * 180 / Math.PI;
angle_l2 = Math.Atan(slope_l2) * 180 / Math.PI;
if (
Math.Abs(angle_l2 - angle_l1) > 80 && Math.Abs(angle_l2 - angle_l1) < 100)
{
img.Draw(l1, new Bgr(Color.Green), 2);
img.Draw(l2, new Bgr(Color.Red), 2);
}
}
}
pictureBox2.Image = img.Bitmap;
pictureBox1.Image = img.Bitmap;
}
}
});t1.Start();
}
چند مدل دیگه هم کد رو میزنم اما بازم همین خطا رو میگیره
دوستان چرا این خطا رخ میده و راه برطرف کردنش چیه؟
من این کذ زیر رو به چند طریق مختلف مینویسم اما همین خطا تکرار میشه!
93850
private void Form1_Load(object sender, EventArgs e)
{
Thread t1 = new Thread(() =>
{
Capture c1 = new Capture();
var img=new Image<Bgr,byte>(640,480);
Image<Gray, Byte> gray;
Image<Gray, Byte> cannyEdges;
Gray cannyThreshold;
Gray cannyThresholdLinking;
Gray circleAccumulatorThreshold;
LineSegment2D[]lines;
double slope_l1, slope_l2;
double angle_l1, angle_l2;
while (true)
{
img = c1.QueryFrame();
pictureBox3.Image = img.Bitmap;
gray = img.Convert<Gray, Byte>().PyrDown().PyrUp();
cannyThreshold = new Gray(180);
cannyThresholdLinking = new Gray(120);
circleAccumulatorThreshold = new Gray(500); ;
cannyEdges = gray.Canny(cannyThreshold, cannyThresholdLinking);
lines = cannyEdges.HoughLinesBinary(
1,
Math.PI / 45.0,
20,
30,
10
)[0];
Image<Bgr, byte> ax = new Image<Bgr, byte>(640, 480);
foreach (LineSegment2D l1 in lines)
{
foreach (LineSegment2D l2 in lines)
{
if (Math.Abs(l1.P2.X - l1.P1.X) != 0 &&
Math.Abs(l2.P2.X - l2.P1.X) != 0)
{
slope_l1 = Math.Abs(l1.P2.Y - l1.P1.Y) / Math.Abs(l1.P2.X - l1.P1.X);
slope_l2 = Math.Abs(l2.P2.Y - l2.P1.Y) / Math.Abs(l2.P2.X - l2.P1.X);
angle_l1 = Math.Atan(slope_l1) * 180 / Math.PI;
angle_l2 = Math.Atan(slope_l2) * 180 / Math.PI;
if (
Math.Abs(angle_l2 - angle_l1) > 80 && Math.Abs(angle_l2 - angle_l1) < 100)
{
img.Draw(l1, new Bgr(Color.Green), 2);
img.Draw(l2, new Bgr(Color.Red), 2);
}
}
}
pictureBox2.Image = img.Bitmap;
pictureBox1.Image = img.Bitmap;
}
}
});t1.Start();
}
چند مدل دیگه هم کد رو میزنم اما بازم همین خطا رو میگیره