2021年3月29日 星期一

s1061414 影像處理作業2

  作業內容:

撰寫一個程式,讀取一張 256 色灰階圖像或 RGB 全彩圖像(.bmp .jpg 圖像格式都可,如全彩圖像可先將圖片由 RGB 轉換至灰階影像),利用 Sobel Operators 圖像邊緣為基礎,設計一個類似素描線條自畫像程式。(如果可以分析邊緣偵測所得到的點,結合成線條方式呈現更佳!)

使用環境:

Visual Studio 2017

Python3.6

Opencv4.5.1

程式說明:

1.輸入一張圖

2.用sobel對XY方向找出邊緣

3.反白

原圖:

結果




2021年3月28日 星期日

s1063314 影像處理作業 2

 

作業題目:撰寫一個程式,讀取一張256 色灰階圖像或RGB 全彩圖像(.bmp 或.jpg 圖像格式都可,如全彩圖像可先將圖片由RGB 轉換至灰階影像),利用Sobel Operators 圖像邊緣為基礎,設計一個類似素描線條自畫像程式。
 
開發環境:
      1. Windows10
      2. Visual Studio 2017
      3. OpenCV - 4.5.1
      4. C++
程式說明:
        1. 讀取圖片
        2. 做高斯模糊消除細節
        3. 將圖片轉成灰階圖
        4. 對x,y軸做sobel運算
        5. 將結果疊加起來
        6. 反白並加強
        7. 存取圖片
執行結果:

原圖 : 

結果:

 
 
 

s1041470 影像處理作業 2

 

作業說明:

撰寫一個程式,讀取一張 256 色灰階圖像或 RGB 全彩圖像(.bmp 或.jpg 圖像格式都可, 如全彩圖像可先將圖片由 RGB 轉換至灰階影像),利用 Sobel Operators 圖像邊緣為基 礎,設計一個類似素描線條自畫像程式


開發環境:

  • Windows 10
  • Spyder
  • Python 3.8.5
  • OpenCV 4.4.0


實作:

  1. 以灰階讀取圖片(圖1)
  2. 利用Sobel對x、y方向過濾找出邊緣
  3. 再利用convertScaleAbs將圖像轉回uint8
  4. 最後利用addWeighted來合併x,y,得到圖像(圖2)
  5. 再將255-原值來達成反白的效果(圖3)

執行結果:


圖1:

圖2:
圖3:





s1073319影像處理作業2

 作業內容:

撰寫一個程式,讀取一張 256 色灰階圖像或 RGB 全彩圖像(.bmp .jpg 圖像格式都可,如全彩圖像可先將圖片由 RGB 轉換至灰階影像),利用 Sobel Operators 圖像邊緣為基礎,設計一個類似素描線條自畫像程式。(如果可以分析邊緣偵測所得到的點,結合成線條方式呈現更佳!)

使用環境:

Visual Studio Code

Python3.9.1

Opencv4.5.1

程式說明:

1.讀入一張圖

2.  將圖片轉成灰階格式

3.sobel operator取得圖片x y 的梯度

4.addweightxy梯度的圖片合成為新的一張圖,並指定給result

5. result 反白並顯示結果

原圖:



結果:

s1073315 影像處理作業 2


作業內容:

撰寫一個程式,讀取一張 256 色灰階圖像或 RGB 全彩圖像(.bmp .jpg 圖像格式都可,如全彩圖像可先將圖片由 RGB 轉換至灰階影像),利用 Sobel Operators 圖像邊緣為基礎,設計一個類似素描線條自畫像程式。(如果可以分析邊緣偵測所得到的點,結合成線條方式呈現更佳!)

 

Coding環境:

l   Windows 10 2004

l   Visual Studio Code 1.54.1

l   Anaconda 4.8.3

l   Python 3.9.1

l   OpenCV 4.5.1

 

程式說明:

1.          使用Python import OpenCV

2.          使用cv2.imread讀取圖片存入img

3.          利用cv2.cvtColor及參數cv2.COLOR_BGR2GRAY將圖片轉灰階

4.          利用cv2.GaussianBlur讓圖片更平滑以減少噪點

5.          XY兩個方向上用cv2.Sobel做處理,並用cv2.convertScaleAbs進行編碼的轉換

6.          最後用cv2.addWeightedXY的結果合併

7.          進行黑白轉換並用cv2.imshow印出

 

處理結果:

 

原圖:



轉為灰階:


 

X軸及Y軸的處理結果:



 


合併後進行黑白反轉:

s1061448 影像處理作業2

        一、作業題目: 

    撰寫一個程式,讀取一張 256 色灰階圖像或 RGB 全彩圖像(.bmp 或.jpg 圖像格式都可,如全彩圖像可先將圖片由 RGB 轉換至灰階影像),利用 Sobel Operators 圖像邊緣為基礎,設計一個類似素描線條自畫像程式。
 
        二、開發環境: 

    作業系統:Windows 10 
    ide:pycharm,anaconda 4.4.0
    圖像處理:open-cv 4.4.0
    語言:python 3.6

        三、操作方法:

  1. 將圖像文件和程式碼處在同一文件目錄下 
  2. 輸入圖像文件名 
  3. 等待程式輸出“Complete”以後,會在該目錄下生成result.png,即為處理過後的圖像

        四、實現方法:


    1. 讀入彩色圖片檔案

        本程式用opencv讀入rgb彩色圖像 

    2. 將圖片轉化為灰度圖像

        其中,每一個像素點的數值有公式 Gray = R*0.299 + G*0.587 + B*0.114 運算得到。

    3. 對圖片用Sobel Operators進行卷積操作

        Sobel Operators的卷積核為:

   X:    Y:

        用兩個卷積核分別對圖像進行卷及操作,獲得兩張圖像

        分別參考兩張圖像,對每一個相同坐標的像素點取最大值,生成一張合併後的圖像。

    4. 減少圖像雜訊

       將圖像反轉(像素值:反轉後 = 255 - 反轉前),原來處理後數值特別低的會接近255呈白色,而偵測出的額邊界則為黑色。

       反轉後,所有接近白色的像素點(像素值大於或等於225)全部設定為255

       完成後,圖像中還有很多零散的小黑點,為了除去這些雜訊,我檢查每一個像素點,如果其四周5X5的方格內,有不到10個點不是255,則被視為雜訊,設置其為255

    5. 輸出處理後圖像

    

五、最終效果: 



原圖像                          

Sobel處理(x)                

Sobel處理(y)                

結合兩次Sobel處理結果

黑白反轉                        

去除雜訊                         


1071508 影像處理作業HW2

 

1. 作業題目:撰寫一個程式,讀取一張 256 色灰階圖像或 RGB 全彩圖像,利用 Sobel Operators 圖像邊緣為基 礎,設計一個類似素描線條自畫像程式。

2. 開發環境:

  • Windows 10+ VS 2019 + OpenCV - 4.5.1 + python 3.8.8
3. 程式說明:
  1. 利用 imread 讀取圖片,轉灰階
  2. 利用Sobel處理圖像 ->處理x軸與處理y軸
  3. convertScaleAbs轉成unit8
  4. addWeighted給予權重合併x、y軸的圖
  5. 把圖片反白
  6. imshow輸出結果
  7. imread儲存結果
4.圖片
原圖
sobel X
sobel Y
addWeighted合併後
黑白反轉








s1071515 影像處理作業2

作業說明

撰寫一個程式,讀取一張256色灰階圖像或 RGB 全彩圖像,利用 Sobel Operators 圖像邊緣為基礎,設計一個類似素描線條自畫像程式。

操作環境

Windows 10
Visual Studio 2019
OpenCV 4.5.1
Python 3.7

程式說明

用cv2、numpy函式庫 
imread讀取圖片
cvtColor將圖片轉成灰階
Sobel將圖片分別對x、y軸抓取邊緣
convertScaleAbs將抓取邊緣後的影像轉換成uint8格式
addWeighted將處理過的x、y軸影像進行合成並設定權重
用255減去合成後的圖片的像素進行顏色反轉
imshow顯示圖片
waitKey等待使用者的下個步驟

實作結果


原圖

Sobel針對x軸抓取邊緣

Sobel針對y軸抓取邊緣

x、y軸合成後的影像

結果(顏色反轉)

s1061410 影像處理作業2

 作業說明:

        撰寫一個程式,讀取一張256 色灰階圖像 或 RGB 全彩圖像(.bmp或.jpg 圖像格式都可如全彩圖像可先將圖片由 RGB 轉換至灰階影像利用 Sobel Operators 圖像邊緣 為基礎,設計一個類似素描線條自畫像程式。 如果可以分析邊緣偵測所得到的點,結合成線條方式呈現更佳!)

開發環境:

    Windows 10

    python 3.7

    OpenCV 4.5.1

程式說明:

    1.用imread()載入全彩圖片

    2.接著將圖片全彩轉灰階

    3.用Sobel取得x和y軸的梯度

    4.用cv2.addWeighted()合併

    5.將出來的圖片黑白對調

輸出:

    原圖:



    結果:



s1073316 影像處理作業2

 1.作業說明:

    撰寫一個程式,讀取一張 256 色灰階圖像或 RGB 全彩圖像(.bmp 或.jpg 圖像格式都可, 如全彩      圖像可先將圖片由 RGB 轉換至灰階影像),利用 Sobel Operators 圖像邊緣為基 礎,設計一個類      似素描線條自畫像程式。(如果可以分析邊緣偵測所得到的點,結合成 線條方式呈現更佳!)。

2.開發環境:

    Window10

    Visual Studio 2019

    C++

    OpenCV 4.5.1

3.程式說明:

  • 將圖片轉為灰階
  • 利用sobel函數求圖片的x、y梯度
  • 利用addWeight函數合併x、y
  • 將圖片反白

4.執行結果:

  • 原圖:


  • 結果:



s1071754 影像處理作業2

 作業說明:

撰寫一個程式,讀取一張 256 色灰階圖像或 RGB 全彩圖像(.bmp .jpg 圖像格式都可,如全彩圖像可先將圖片由 RGB 轉換至灰階影像),利用 Sobel Operators 圖像邊緣為基礎,設計一個類似素描線條自畫像程式。

Coding環境:

  • Windows 10 
  • Anaconda 4.8.4
  • Jupyter 6.0.1
  • Python 3.7.9
  • OpenCV 3.4.2

程式說明:

  1. imread("test.jpg", 0),將圖片直接以RGB彩圖讀入
  2. 再用COLOR_BGR2GRAY把彩圖轉成灰階
  3. 運用Sobel運算子處理X軸與Y
  4. 將得到的結果使用addWeighted函式結合
  5. 用for迴圈以255-像素值,得到黑白反轉的圖片
  6. 以閾值threshold=210對圖片做二值化處理=>Threshold Binary,即二值化,將大於門檻值的灰階值設為最大灰階值,小於門檻值的值設為0
  7. 用matplotlib的imshow顯示最終結果

程式執行畫面及結果:

                                                                          1.原圖(RGB彩圖)


2.轉成灰階圖

3.對X和Y進行Sobel處理後

                                                            

4.最後進行threshold處理後之最終結果






s1061515 影像處理作業 2

 目的:

撰寫一個程式,讀取一張 256 色灰階圖像或 RGB 全彩圖像(.bmp 或.jpg 圖像格式都可, 如全彩圖像可先將圖片由 RGB 轉換至灰階影像),利用 Sobel Operators 圖像邊緣為基 礎,設計一個類似素描線條自畫像程式。(如果可以分析邊緣偵測所得到的點,結合成 線條方式呈現更佳!) 

環境:

Windows10 OS, Python3.7.7, OpenCV 4.5.1

 

程式流程:

1. 讀圖進來 (src = imread())

2. 把彩色圖轉成灰階圖(gray = cv.cvtColor(src, cv.COLOR_BGR2GRAY) )

3. Sobel分別對x.y取出梯度

4. 確保梯度一定為正數(convertScaleAbs)

5. 黑白反轉至如作業要求(final = 255 - grad)

測試結果:

(左為原圖,右為調整過的圖)