<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://ilianko.com/index.php?action=history&amp;feed=atom&amp;title=Talk%3AOpenCV_Background</id>
	<title>Talk:OpenCV Background - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://ilianko.com/index.php?action=history&amp;feed=atom&amp;title=Talk%3AOpenCV_Background"/>
	<link rel="alternate" type="text/html" href="https://ilianko.com/index.php?title=Talk:OpenCV_Background&amp;action=history"/>
	<updated>2026-05-13T22:26:27Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.33.1</generator>
	<entry>
		<id>https://ilianko.com/index.php?title=Talk:OpenCV_Background&amp;diff=5366&amp;oldid=prev</id>
		<title>Anko: Created page with &quot;&lt;code&gt;&lt;pre&gt; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using S...&quot;</title>
		<link rel="alternate" type="text/html" href="https://ilianko.com/index.php?title=Talk:OpenCV_Background&amp;diff=5366&amp;oldid=prev"/>
		<updated>2015-02-11T07:29:06Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using S...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;code&amp;gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
using System;&lt;br /&gt;
using System.Collections.Generic;&lt;br /&gt;
using System.ComponentModel;&lt;br /&gt;
using System.Data;&lt;br /&gt;
using System.Drawing;&lt;br /&gt;
using System.Linq;&lt;br /&gt;
using System.Text;&lt;br /&gt;
using System.Windows.Forms;&lt;br /&gt;
&lt;br /&gt;
using Emgu.CV;&lt;br /&gt;
using Emgu.Util;&lt;br /&gt;
using Emgu.CV.Structure;&lt;br /&gt;
using System.Windows.Threading;&lt;br /&gt;
&lt;br /&gt;
namespace WindowsFormsApplication1&lt;br /&gt;
{&lt;br /&gt;
    public partial class Form1 : Form&lt;br /&gt;
    {&lt;br /&gt;
        public Form1()&lt;br /&gt;
        {&lt;br /&gt;
            InitializeComponent();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private Capture cap = new Capture();&lt;br /&gt;
        Image&amp;lt;Bgr, byte&amp;gt; frame;&lt;br /&gt;
        Image&amp;lt;Bgr, byte&amp;gt; background;&lt;br /&gt;
        Image&amp;lt;Gray, byte&amp;gt; bOr;&lt;br /&gt;
        private Image&amp;lt;Gray, byte&amp;gt; mask;&lt;br /&gt;
        private Image&amp;lt;Gray, byte&amp;gt; maskI;&lt;br /&gt;
&lt;br /&gt;
        private DispatcherTimer timer = new DispatcherTimer();&lt;br /&gt;
&lt;br /&gt;
        private void Form1_Load(object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            background = new Image&amp;lt;Bgr, byte&amp;gt;(&amp;quot;C:/images/test.jpg&amp;quot;);&lt;br /&gt;
            this.Size = new System.Drawing.Size(100, 100);&lt;br /&gt;
           &lt;br /&gt;
            frame = cap.QueryFrame();&lt;br /&gt;
            frame = cap.QueryFrame();&lt;br /&gt;
            frame = cap.QueryFrame();&lt;br /&gt;
            frame = cap.QueryFrame();&lt;br /&gt;
            frame = cap.QueryFrame();&lt;br /&gt;
            frame = cap.QueryFrame();&lt;br /&gt;
            bOr = frame.Convert&amp;lt;Gray,byte&amp;gt;();&lt;br /&gt;
            &lt;br /&gt;
            this.Size = frame.Size;&lt;br /&gt;
&lt;br /&gt;
            &lt;br /&gt;
            mask = frame.Convert&amp;lt;Gray, byte&amp;gt;();&lt;br /&gt;
            maskI = frame.Convert&amp;lt;Gray, byte&amp;gt;();&lt;br /&gt;
&lt;br /&gt;
            background = background.Resize(frame.Size.Width, frame.Size.Height, Emgu.CV.CvEnum.INTER.CV_INTER_LINEAR);&lt;br /&gt;
         &lt;br /&gt;
            timer.Tick += new EventHandler(timer_tick);&lt;br /&gt;
            timer.Interval = new TimeSpan(0, 0, 0, 0, 35);&lt;br /&gt;
            timer.Start();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private Image&amp;lt;Gray, byte&amp;gt; gray;&lt;br /&gt;
        Image&amp;lt;Bgr, byte&amp;gt; combined;&lt;br /&gt;
&lt;br /&gt;
      &lt;br /&gt;
        void timer_tick(object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
            frame = cap.QueryFrame();&lt;br /&gt;
            gray = frame.Convert&amp;lt;Gray, byte&amp;gt;();&lt;br /&gt;
&lt;br /&gt;
            mask.SetValue(0);&lt;br /&gt;
            maskI.SetValue(255);&lt;br /&gt;
           &lt;br /&gt;
            gray = gray.AbsDiff(bOr);&lt;br /&gt;
            gray = gray.ThresholdBinary(new Gray(20), new Gray(255));&lt;br /&gt;
            &lt;br /&gt;
            double largestarea = 0;&lt;br /&gt;
           &lt;br /&gt;
           Contour&amp;lt;Point&amp;gt; largestContour = null;&lt;br /&gt;
           var sourceContours = gray.FindContours(Emgu.CV.CvEnum.CHAIN_APPROX_METHOD.CV_CHAIN_APPROX_NONE, Emgu.CV.CvEnum.RETR_TYPE.CV_RETR_LIST);&lt;br /&gt;
         &lt;br /&gt;
           while (sourceContours != null)&lt;br /&gt;
           {&lt;br /&gt;
               if(largestarea &amp;lt; sourceContours.Area)&lt;br /&gt;
               {&lt;br /&gt;
                   largestarea = sourceContours.Area;&lt;br /&gt;
                   largestContour = sourceContours;&lt;br /&gt;
               }&lt;br /&gt;
               sourceContours = sourceContours.HNext;&lt;br /&gt;
           }&lt;br /&gt;
&lt;br /&gt;
           if (largestContour != null)&lt;br /&gt;
           {&lt;br /&gt;
               largestarea = largestContour.Area;&lt;br /&gt;
               mask.Draw(largestContour, new Gray(255), -1);&lt;br /&gt;
               maskI = maskI.Sub(mask);&lt;br /&gt;
&lt;br /&gt;
               combined = background.Copy(maskI);&lt;br /&gt;
               frame = frame.Copy(mask);&lt;br /&gt;
               frame = frame.Add(combined);&lt;br /&gt;
           }&lt;br /&gt;
 &lt;br /&gt;
            pictureBox1.Image = frame.Bitmap;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        private void pictureBox1_Click(object sender, EventArgs e)&lt;br /&gt;
        {&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Anko</name></author>
		
	</entry>
</feed>