پردازش تصویر(Image Proccessing)

يك Bitmap آرايه اي دو بعدي از رنگها است. اين  آرايه در حافظه ذخيره مي شود و زماني كه يك تصوير در فرم يا جعبه عكس نمايش داده ميشود هر يك از مقادير رنگ به يك پيكسل در تصوير برگردانده مي شود.و البته اين زماني درست است كه اندازه ي عكس را تغيير ندهيم كه در اين صورت تصوير به حالت يك به يك برگردانده ميشود.

پردازش تصوير چيزي جز انجام عمليات محاسباتي بر روي مقادير رنگ  پيكسلها نيست. برنامه پردازش تصويري كه در ادامه توضيح داده ميشود ويژگيهاي يك برنامه پردازش تصوير حرفه اي را ندارد ولي قانون اصلي آن را بيان مي كند و مي تواند نقطه آغاز براي آن باشد.

پردازش تصاوير با دوحالقه تو در تو ممكن ميشود كه به ترتيب نشانگر ريف و ستون Bitmap شما مي باشد.در حلقه ي داخلي محاسباتي روي پيكسل(row,column (  و پيكسل هاي مجاور تا شعاع مشخص انجام مي شود و نتيجه ي آن تشخيص  ويژگي خاص يا تغيير رنگ پيكسل اصلي است.به اين تر تيب ممكن است هر پيكسل يك يا چند بار برسي شود.

For pxlCol As Integer = 0 To PictureBox1.Image.Height - 1

For pxlRow As Integer = 0 To PictureBox1.Image.Width - 1

’  محاسبات مربط به پردازش پيكسل جاري

’ (pxlRow, pxlCol)

Next

Next

Negative (معكوس كردن رنگ)

براي اين كار تمامي رنگهاي تصوير بايد به مكمل آن برگردانده شود به تصوير حاصل Negative عكس ميگويند . مكمل رنگ (r,g,b) رنگ (255-a,255-g,255-b) مي باشد بنابراين مكمل رنگ سياه (0,0,0)  رنگ سفيد (255,255,255) مي شود.برنامه به شكل زير است.براي تمامي برنامه هاي زير يك جعبه عكس و دكمه دستور با نامهاي پيش فرض.در ضمن در جعبه عكس قبل از اجرا يك عكس دلخواه قرار دهيد.

           

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim bmp As New Bitmap(PictureBox1.Image)

        Dim c As Color

        PictureBox1.Image = bmp

        For pxlCol As Integer = 0 To PictureBox1.Image.Height - 1

            For pxlRow As Integer = 0 To PictureBox1.Image.Width - 1

                c = bmp.GetPixel(pxlRow, pxlCol)

                bmp.SetPixel(pxlRow, pxlCol, Color.FromArgb(c.A, 255 - c.R, 255 - c.G, 255 - c.B))

            Next

        Next

    End Sub

Smooth

براي كاهش جزئيات عكس به كار مي رود و لبه هاي زبر عكس را نرم ميكند. تصوير حاصله با تصوير قديم تفاوت چنداني نمي كند وبه آن شبيه است جز اينكه جزءيات آن كم ميشود.براي اين كار بايد اختلاف رنگ پيكسلهاي مجاور كاهش يابد. براي اين منظور براي هر پيكسل در اطراف آن يك مربع 3*3 را در نظر مي گيريم به طوري كه پيكسل مورد نظر در وسط باشد . سپس رنگ تمامي اين 9 پيكسل ميانگين گرفته شده ودر پيكسل وسط قرار مي گيرد.براي اين مي توان مربع 5*5 يا بيشتر را انتخاب كرد .در  برنامه زير پيكسل هاي مرزي چون همه ي همسايه ها را ندارد ثابت مي گذاريم تا برنامه ساده باشد. وچون تصوير تغيير خواهد كرد براي محاسبات ديگر مشكل پيش مي آيد چون برخي از اين رنگها جديد وبرخي قديمي است پس معتبر نيست براي اين منظور يك كپي از تصوير تهيه مي كنيم تا بدون تغيير با قي بماند.

Normal

Smoothing

Sharpening

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim bmp As New Bitmap(PictureBox1.Image)

        Dim temp As New Bitmap(PictureBox1.Image)

        Dim c(9) As Color

        Dim r, g, b As Integer

        PictureBox1.Image = bmp

        For pxlCol As Integer = 1 To PictureBox1.Image.Height - 2

            For pxlRow As Integer = 1 To PictureBox1.Image.Width - 2

                c(0) = temp.GetPixel(pxlRow, pxlCol)

                c(1) = temp.GetPixel(pxlRow + 1, pxlCol)

                c(2) = temp.GetPixel(pxlRow, pxlCol + 1)

                c(3) = temp.GetPixel(pxlRow - 1, pxlCol)

                c(4) = temp.GetPixel(pxlRow, pxlCol - 1)

                c(5) = temp.GetPixel(pxlRow + 1, pxlCol + 1)

                c(6) = temp.GetPixel(pxlRow - 1, pxlCol - 1)

                c(7) = temp.GetPixel(pxlRow + 1, pxlCol - 1)

                c(8) = temp.GetPixel(pxlRow - 1, pxlCol + 1)

                r = 0 : g = 0 : b = 0

                For i = 0 To 9

                    r = r + c(i).R

                    g = g + c(i).G

                    b = b + c(i).B

                Next

                r /= 9 : g /= 9 : b /= 9

                bmp.SetPixel(pxlRow, pxlCol, Color.FromArgb(255, r, g, b))

            Next

        Next

    End Sub

از ديگر موارد پردازش تصوير Sharpening Images و  Embossing Images است كه اولي براي افزايش جزءيات است وبرعكس برنامه بالا عمل مي كند به اين ترتيب كه براي هر پيكسل درصدي از اختلاف رنگ آن با پيكسلهاي مجاور را به رنگش اضافه مي كند به اين ترتيب فاصله رنگها افزايش مي يابد. و دومي نيز اختلاف رنگ پيكسل با همسايهايش به اضافه ي عددي ثابت را جايگزين رنگ آن ميكند.


مطالب مشابه :


پردازش تصوير چيست؟

پردازش تصوير چيست؟ از سال 1964 تاكنون، موضوع پردازش تصوير، رشد فراواني كرده است. علاوه بر




آموزش پردازش تصوير

آموزش پردازش تصوير - image processing. تو این سلسه مقالات قصد دارم پردازش تصویر رو در قالب یک پروژه




پردازش تصویر(Image Proccessing)

پردازش تصوير چيزي جز انجام عمليات محاسباتي بر روي مقادير رنگ پيكسلها نيست. برنامه پردازش




آموزش پردازش تصوير(1) - IMAGE PROCESSING

آموزش پردازش تصوير(۱) image processing. خیلی حرف زدم!! تو این سلسه مقالات آموزشیم قصد دارم پردازش




پردازش تصویر

تعریف کلی پردازش انواع پردازش تصوير: برای پردازش تصویر روش های مختلفی وجود دارد که 4




آموزش پردازش تصوير(1) - IMAGE PROCESSING

آموزش پردازش تصوير(۱) image processing. خیلی حرف زدم!! تو این سلسه مقالات آموزشیم قصد دارم پردازش




پردازش تصویر

سفارش انجام پروژه های متلب - پردازش تصویر - سفارش انجام پروژه های متلب ، پروژه آماده متلب




برچسب :