2012年5月5日 星期六

QRCode產生器與解碼器


    從井民全老師的blog中看到有寫到有關QRCode的操作後馬上著手練習,之後又在youtube看到一個作者用很簡潔的內容寫出了QRCode的操作,以下的是參考monsterhunter445後寫出的程式碼。與井民全老師的差別在於,monsterhunter445作者是載入了MessagingToolkit.QRCode.dll。
    原始碼分享在下面:

此程式可依輸入的網址來編成QRCode





















匯整數個例子在一個專案(轉黑白照、反轉顏色..等)

利用高效率的方法寫出「轉成黑白照」、「反轉顏色」、「紅色瀘鏡」、「綠色瀘鏡」、「藍色瀘鏡」、「增加亮度」。




2012年5月4日 星期五

紅綠藍瀘鏡運用&增加圖片亮度

紅綠藍瀘鏡運用與提高圖片亮度。

這一個程式bug找好久,因為我的邏輯跟作者寫的不同。最後我用自已的邏輯來使用function,才成功。

先說瀘鏡。與作者的code相比,我沒有setRGBData_unsafe( )與getRGBData_unsafe( ),我直接在ColorFilter功能裡完成了上述兩個功能的工作呼叫getRGBData( )setRGBData( )來抓「三維陣列」與「由陣列建立新的 Bitmap」,然後更新掉image,就完成了。(另外,SHOW圖的方式也不同,作者用LoadImage( )影像公用程式,我寫不出來,所以用了另一個方法,這方法是在第一個範例裡學的。)(看紅字的code)


提高圖片的亮度與瀘鏡的計算類似,一樣一開始是做一個三維陣列,用三維陣列來跑每個pixel提高亮度,然後將三維陣列轉成Bitmap型態,再來把image更新掉,完成。


簡單的敘述執行順序:
點擊button->建立物件image->執行image.ColorFilter( )->用Bitmap把image包起來->
執行getRGBData( ),以取得存放pixel資訊的三維陣列->以此三維陣列執行瀘鏡的計算->
將三維陣列做成Bitmap型態的bimage->更新image->以視窗呈現處理後的圖片。




使用高效率方法將彩色照片轉成黑白照片

使用高效率方法將彩色照片轉成黑白照片


2012年5月2日 星期三

放大、縮小、形變旋轉


簡單的影像處理,分別是放大兩倍、縮小兩倍以及形變旋轉








可選擇處理影像的show圖程式

上一篇是介紹點擊button呼叫出圖片。這一篇是介紹,您可以自由選擇欲處理的影像。




建立一個SHOW圖程式

這裡來寫一支SHOW圖程式,此程式在點擊BUTTON後會呼叫出一個視窗來顯示圖片。



using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Imaging;


namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
         
         
            ImageForm Myimage = new ImageForm();//建立秀圖物件
            Myimage.Show();//顯示秀圖照片
        }
        class ImageForm : Form
        {
            Image image;
            public ImageForm()
            {
                image = Image.FromFile(@"D:\MyPhoto\IMG_3841.JPG");
                this.Text = @"D:\MyPhoto\IMG_3841.JP";
                //載入影像的程式碼放這
            }

            protected override void OnPaint(PaintEventArgs e)
            {
                this.Height = 600;
                this.Width = 800;
                //顯示出影像的程式碼在這
                e.Graphics.DrawImage(image, 0, 0, Width, Height);
            }
        }
        }
    }


「撰寫影像處理程式 難不倒我!!」的學習筆記

最近因為研究所的研究領域,要開始接受磨鍊了。
我選擇的研究領域是影像處理,未來要撰寫擴增實境的底層技術,其所使用的程式語言是C#,所以之後會有數篇有關用C#撰寫影像處理的學習筆記。
目前正在讀的是教授給的一篇由井民全老師所寫的「撰寫影像處理程式 難不倒我!!」,一起成長吧!

P.S.廣義上來講,所謂的擴增實境(augmented reality,AR)是將電腦的資訊疊合到現實世界,讓我們在正確的時間正確的地點取得<感官的>正確資訊 。看完下面這個影片就了解了: