顯示具有 s1083312 標籤的文章。 顯示所有文章
顯示具有 s1083312 標籤的文章。 顯示所有文章

2022年6月1日 星期三

s1083312 作業7

 一、作業題目:

   請撰寫一個程式,利用數學型態學影像處理運算,計算出所附圖像(共三張)每張圖像中 圍棋個數

二、環境設置:
    1. windows10
    2. python 3.7
    3. opencv-python 

三、作業說明:
    1. 利用imread讀取圖片
    2.將圖片透過cvtColor轉成單通道
    3.設好threshold閾值將圖二值化
    4.進行侵蝕以及膨脹的動作直到能分離每顆圍棋
    5.使用HoughCircles函式找出圓形的部分
    6.透過HoughCircles找出的數據在圖片上標示出圓 用迴圈來跑 一行跑來畫圓心 一行跑來畫圓圈
    7.輪廓數量即為圍棋的數量
、執行結果:




IMG_5702: 原圖24顆,找到20顆(-4)



IMG_5703: 原圖31顆 找到28顆(-3)


IMG_5704: 原圖31顆 找到31顆(0)

2022年5月10日 星期二

s1083312 作業5

 一、作業說明

    撰寫一個程式將所附圖像flower.jpg的黃色花瓣區域擷顯示出來。

二、開發環境

    Windows 10
    Python 3.9.7
    OpenCV 4.5.5

三、實作方式

    1. 以imread讀入圖片
    2.  cvtColor 將影像從彩色轉換成HSV。
    3. 找出黃色HSV值的範圍
    4. 使用inRange 找出黃色部分
    5. bitwise_and 輸出黃色部分

四、執行結果




2022年4月12日 星期二

s1083312 作業4

 1. 作業說明

請撰寫一個程式,讀取一張256色灰階圖像。

(1) 計算輸入圖的離散傅立葉轉換結果,並將頻譜大小與相位角度各以灰階256色圖像方式呈現出。

(2) 對圖像利用Gaussian Low-Pass filter處理,輸出平滑後圖像。

2.開發環境

Windows 10

Visual Studio 2019

OpenCV 455

3. 實作方法

(1)

進行傅立葉轉換
將多通道陣列complexI分離成幾個單通道陣列

進行對數尺度縮放
交換象限

(2)

建立一個 5*5 Gaussian Low Pass卷積核矩陣

用for迴圈對每個點做Convolution 各點乘上 kernel 對應數然後相加起來,

4. 執行結果


(1)

Original


Magnitude


Phase
(2)
                                 Gaussian
雨葳WML
雨葳WML


參考資料:

書籍OpenCV程式設計參考手冊   第五章範例28

 opencv 例程講解5 ---- 如何實現卷積運算 - 台部落 (twblogs.net)

2022年3月12日 星期六

s1083312 作業 3

   1. 作業說明: 

              以灰階模式讀取一張圖像

              (a)利用 Sobel Operators偵測並輸出邊緣成分圖 

             (b)設計一個類似素描線條的自畫像圖案。



    2. 開發環境:


    • Windows 10

    • Visual Studio 2019

    • OpenCV 4.5.5

    3. 程式流程:

 (a)

                     使用Sobel函數

                    Sobel(image, x, CV_16S, 1, 0, 3, 1, 1, BORDER_DEFAULT);

                    其參數分別代表輸入影像/目標影像/輸出影像深度/x方向的差分階數/

                    y方向的差分階數 /sobel核心大小/scale/delta/邊界模式

                    分別求出x、y方向梯度

                    再使用addWeighted合併梯度 

                    (b)

                    使用GaussianBlur讓影像變模糊

                    使用divide混合

       

    4. 執行結果:

原圖


謝謝我最棒的學生~😭🤟


灰階圖

以第一張照片為代表


邊緣成分圖 



素描線條圖案


2022年3月7日 星期一

s1083312 作業2

 

   1. 作業說明: 


  • 圖像旋轉(Image Rotation)

                    撰寫程式建立一個0~359的Trackbar,選擇旋轉角度,並使讀取的圖片逆時針旋轉。

                    製作出可以選擇(1)整張圖片旋轉或是(2)根據內切圓部分進行旋轉的程式。


    2. 開發環境:


    • Windows 10

    • Visual Studio 2019

    • OpenCV 4.5.5

    3. 程式流程:


1.透過creatTrackbar創造出一個數值0~359的trackbar

2.使用Point找到圖片中心點

3.接著利用getRotationMatrix2D對圖片進行旋轉設置

4.根據旋轉矩陣進行仿射變換

             

    4. 執行結果:



輸入0為整張圖片旋轉



輸入1為圖片中心內切圓旋轉






2022年2月24日 星期四

s1083312 作業1

 1、作業說明

        撰寫一個程式讀取一張圖片,將圖像中每一個點像素的值各加上一個數值。如果輸入圖像是灰階圖像,改變每個像素的灰階值;如果輸入圖像是全彩圖像(RGB),則只改變 每個像素的 R 值。 注意修改後像素值溢位 Overflow 問題(像素值介於 0 與 255 之間)。


2. 開發環境

  •    Window10   
  •    Microsoft Visual Studio 2019
  •    OpenCv 4.5.5


3.實作方法

在程式碼裡面先打好要讀取的檔案名稱,然後使用者要輸入想要增加的數值為多少,程式會判斷是否 3 channels 還是 1 channels倘若啊,是3channels那就代表是一張真正的灰階圖喔,反之,就只是一般的RGB圖。
接著,倘若灰階圖就必須同時改變RGB三個的數值,RGB圖就只要更改R的數值,是不是很簡單易懂,嘻嘻🤘🤘🤘🤘


4.執行結果: 

程式執行過程視訊



結果圖像畫面

工程師都愛的Mrs.萊娜👅

輸入100

輸入-100


灰色書封📕

輸入100

輸入-100 



PS.自選圖🥴🤤

這是我家的狗 叫做張小Lu


原始圖檔

輸入100

輸入-100




之前去看電影的
合照

原始圖檔

輸入100

輸入-100 

好像甚麼水中世界

🐠

 
哈哈哇哈