作業內容:
撰寫一個程式,讀取一張 256 色灰階圖像或 RGB 全彩圖像(.bmp 或.jpg 圖像格式都可,如全彩圖像可先將圖片由 RGB 轉換至灰階影像),利用 Sobel Operators 圖像邊緣為基礎,設計一個類似素描線條自畫像程式。(如果可以分析邊緣偵測所得到的點,結合成線條方式呈現更佳!)
使用環境:
Visual Studio 2017
Python3.6
Opencv4.5.1
程式說明:
1.輸入一張圖
2.用sobel對XY方向找出邊緣
3.反白
原圖:
作業內容:
撰寫一個程式,讀取一張 256 色灰階圖像或 RGB 全彩圖像(.bmp 或.jpg 圖像格式都可,如全彩圖像可先將圖片由 RGB 轉換至灰階影像),利用 Sobel Operators 圖像邊緣為基礎,設計一個類似素描線條自畫像程式。(如果可以分析邊緣偵測所得到的點,結合成線條方式呈現更佳!)
使用環境:
Visual Studio 2017
Python3.6
Opencv4.5.1
程式說明:
1.輸入一張圖
2.用sobel對XY方向找出邊緣
3.反白
原圖:
作業題目:撰寫一個程式,讀取一張256 色灰階圖像或RGB 全彩圖像(.bmp 或.jpg 圖像格式都可,如全彩圖像可先將圖片由RGB 轉換至灰階影像),利用Sobel Operators 圖像邊緣為基礎,設計一個類似素描線條自畫像程式。
開發環境:
程式說明:
執行結果:
原圖 :
結果:
作業內容:
撰寫一個程式,讀取一張 256 色灰階圖像或 RGB 全彩圖像(.bmp 或.jpg 圖像格式都可,如全彩圖像可先將圖片由 RGB 轉換至灰階影像),利用 Sobel Operators 圖像邊緣為基礎,設計一個類似素描線條自畫像程式。(如果可以分析邊緣偵測所得到的點,結合成線條方式呈現更佳!)
使用環境:
Visual Studio Code
Python3.9.1
Opencv4.5.1
程式說明:
1.讀入一張圖
2. 將圖片轉成灰階格式
3.用sobel operator取得圖片x 和 y 的梯度
4.用addweight將x和y梯度的圖片合成為新的一張圖,並指定給result
5. 將result 反白並顯示結果
原圖:
結果:
作業內容:
撰寫一個程式,讀取一張 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.
在X及Y兩個方向上用cv2.Sobel做處理,並用cv2.convertScaleAbs進行編碼的轉換
6.
最後用cv2.addWeighted將X跟Y的結果合併
7.
進行黑白轉換並用cv2.imshow印出
處理結果:
原圖:
轉為灰階:
X軸及Y軸的處理結果:
合併後進行黑白反轉:
本程式用opencv讀入rgb彩色圖像
其中,每一個像素點的數值有公式 Gray = R*0.299 + G*
Sobel Operators的卷積核為:
用兩個卷積核分別對圖像進行卷及操作,獲得兩張圖像
分別參考兩張圖像,對每一個相同坐標的像素點取最大值,生成一張合併後的圖像。
將圖像反轉(像素值:反轉後 = 255 - 反轉前),原來處理後數值特別低的會接近255呈白色,而偵測出的額邊界則為黑色。
反轉後,所有接近白色的像素點(像素值大於或等於225)全部設定為255
完成後,圖像中還有很多零散的小黑點,為了除去這些雜訊,我檢查每一個像素點,如果其四周5X5的方格內,有不到10個點不是255,則被視為雜訊,設置其為255
1. 作業題目:撰寫一個程式,讀取一張 256 色灰階圖像或 RGB 全彩圖像,利用 Sobel Operators 圖像邊緣為基 礎,設計一個類似素描線條自畫像程式。
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.將出來的圖片黑白對調
輸出:
原圖:
結果:
1.作業說明:
撰寫一個程式,讀取一張 256 色灰階圖像或 RGB 全彩圖像(.bmp 或.jpg 圖像格式都可, 如全彩 圖像可先將圖片由 RGB 轉換至灰階影像),利用 Sobel Operators 圖像邊緣為基 礎,設計一個類 似素描線條自畫像程式。(如果可以分析邊緣偵測所得到的點,結合成 線條方式呈現更佳!)。
2.開發環境:
Window10
Visual Studio 2019
C++
OpenCV 4.5.1
3.程式說明:
作業說明:
撰寫一個程式,讀取一張 256 色灰階圖像或 RGB 全彩圖像(.bmp 或.jpg 圖像格式都可,如全彩圖像可先將圖片由 RGB 轉換至灰階影像),利用 Sobel Operators 圖像邊緣為基礎,設計一個類似素描線條自畫像程式。
Coding環境:
程式說明:
程式執行畫面及結果:
1.原圖(RGB彩圖)
3.對X和Y進行Sobel處理後
4.最後進行threshold處理後之最終結果
目的:
撰寫一個程式,讀取一張 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)
測試結果:
(左為原圖,右為調整過的圖)