➣ Reading Time: 10 minutes

My photoshop ver3.0

https://ithelp.ithome.com.tw/upload/images/20201009/20120424JkPgV13XD4.png

功能列表

# ------  My photoshop Release notes ------ #
# ver3.0 (2020.10.12)
1. 優化整體程式穩定度
2. 新增油漆工具 (位於 "My color panel" 視窗,可自選色)
3. 新增新視窗 "My control panel",為所有調整的主控版 (之前的調整功能也移至這裡)
4. 同上,同時移除主畫面 "My photoshop" 的所有調整功能
5. 新增可調整RGB分量功能
6. 新增可調整色溫功能 (冷色系、暖色系)
7. 新增銳化功能
8. 新增4種不同模糊功能
9. 新增22種不同 colormap
10. 新增視窗自動調整大小的功能
11. 新增自動將視窗移動至固定位置的功能,以後不用自己移動視窗了!
# ver2.0 (2020.10.11)
1. 新增視窗 "My histogram",可以隨時查看現在圖片的 RGB直方圖
2. 新增視窗 "My color panel",可以自己選顏色、自己畫點
# ver1.0 (2020.10.10)
1. 新增儲存檔案功能
2. 離開應用程式的穩定優化
3. 新增關閉程式的文字提示
4. 新增調整光線、對比度功能
5. 新增調整明度、飽和度功能
6. 新增旋轉圖片功能
7. 新增可增加圖片噪點的功能,相當於增加圖片顆粒感

-> 此篇文章的程式碼 github

Day30_My_photoshop_v3.ipynb

前言

所以沒錢買 photoshop 的我,最後自己做了一個 photoshop 嗎…

這系列會把之前所學到的東西全部整理到一支程式中,
當然我知道如果用類似 QT 可以整出更好的視覺化界面
但我們的重點還是放回只靠 OpenCV 能做的極限能到哪邊哈哈哈

新增功能一覽

1. 優化整體程式穩定度

這次的改版主要做的事情是將 無限while迴圈 的部分,
加了個 time.sleep(0.001)
這樣做可以大幅降低 memory 的使用率,
而且 time.sleep(0.001) 對於人是幾乎不會有感覺的,
加了這行程式碼能讓我們的程式更好的使用電腦資源。

2. 新增油漆工具 (位於 “My color panel” 視窗,可自選色)

這個就是 漫水填充法 cv2.floodFill 的應用,
可參考: 【沒錢ps,我用OpenCV!】Day 21 – 花式修圖3,OpenCV 也有 photoshop 的魔術棒工具?! 漫水填充法 cv2.floodFill (Magic Wand Tool)

3. 新增新視窗 “My control panel”,為所有調整的主控版 (之前的調整功能也移至這裡)

4. 同上,同時移除主畫面 “My photoshop” 的所有調整功能

因為我們接下來會新增一大堆功能,
如果像之前的畫面直接加在圖片下方空間會不夠用。
因此我們新增一個主控台視窗 “My control panel”,
我們將之後所有要加的功能加進這裡面。

5. 新增可調整RGB分量功能

reference: 【沒錢ps,我用OpenCV!】Day 6 – 日系濾鏡3,運用 OpenCV 調整色調(冷色系/暖色系)、色溫(白平衡)modify color temperature, white balance

6. 新增可調整色溫功能 (冷色系、暖色系)

reference: 【沒錢ps,我用OpenCV!】Day 6 – 日系濾鏡3,運用 OpenCV 調整色調(冷色系/暖色系)、色溫(白平衡)modify color temperature, white balance

7. 新增銳化功能

reference: 【沒錢ps,我用OpenCV!】Day 26 – 進階修圖6,銳化圖片,將模糊的圖片變得更清晰吧! sharpen images

8. 新增4種不同模糊功能

9. 新增22種不同 colormap

reference: 【沒錢ps,我用OpenCV!】Day 27 – 花式修圖4,顏色映射 – OpenCV 內建的自動配色?! auto recolor images, cv2.applyColorMap

這邊皆可以從之前我的文章找到相關內容哦!

10. 新增視窗自動調整大小的功能

因為有時視窗大小會太大,而實際上我們並不需要太大的視窗,
(例如:我們只有一條滑動條,但滑動條被拉的太長,實際上沒必要)
因此我固定了視窗的大小。

11. 新增自動將視窗移動至固定位置的功能,以後不用自己移動視窗了!

這算是對自己執行程式後的視窗分布比較友善一些,
自動把所有視窗移動到對應位置,
就不需要手動再移動了!

而且,我們還模擬了 photoshop 視窗控制的分佈位置,
現在看起來有更像 photoshop 的感覺了! (吧)

-> 30天的感謝 與 未來更新

到了今天已經第30天了,很感謝所有一直默默在追隨的讀者們,
另外也很感謝我的朋友們,願意讓我洗我的fb版面還沒刪我好友XDDD,
另外也很感謝我的同事、主管、部分朋友,一直很支持我寫完這系列的主題,
在30天途中也給了我不少能寫東西的點子,讓我有源源不絕的題目。
其實我也沒想到自己居然最後乾脆自己做一個 photoshop 雛形出來,
所以說沒錢買 photoshop,就乾脆自己把 photoshop 做出來嗎…

未來的話,其實這30天並不是終點,
因為我也還有很多題目還沒寫完…,
這30天的 OpenCV 學習筆記讓我學習到了不少新東西,
也等同於預寫了很多實用的函數,之後可以直接在需要時使用,
(當然有需要的朋友也能夠直接拿去用哈哈哈哈哈),
但連續寫30天的我,也需要先休息一下XD,
該出去玩不要再待在電腦前當個技術宅了XDDD,
之後還是會繼續寫,不定期更新,
我會繼續把實用的函數整理起來等著以後自用與順便幫助別人,
以上,再次感謝所有支持我的人們。


本文同步發佈在: 第 12 屆 iT 邦幫忙鐵人賽
【沒錢ps,我用OpenCV!】Day 30 – Final Project v3,於是沒錢買ps的我,開發了自己的photoshop,我的天啊 My photoshop made by OpenCV


 ⭐Python OpenCV 相關文章整理⭐:
⭐基礎知識篇⭐:
1.【OpenCV】1 – 安裝 python OpenCV install 電腦中圖片的基本概念總整理
2.【OpenCV】2 – OpenCV 圖片的讀取、顯示、存檔 (load, show, save),附贈簡易理解「相對路徑」與「絕對路徑」
3.【OpenCV】OpenCV 利用 python OpenCV 查詢 image 大小, img shape sample code (內附範例程式碼)
⭐基本圖像處理篇⭐:
1.【OpenCV】OpenCV 利用 python OpenCV 縮放圖片 image 大小, cv2 resize (內附程式碼)
2.【OpenCV】3 – python OpenCV 的剪裁、旋轉、縮放 (crop, rotate, resize)
3.【OpenCV】4 – 運用 OpenCV 調整光線 (modify brightness, intensity)
4.【OpenCV】5 – 運用 OpenCV 調整亮度、飽和度(透過轉移至 HLS 顏色空間) modify lightness, saturation
5.【OpenCV】6 – 運用 OpenCV 調整色調(冷色系/暖色系)、色溫(白平衡)modify color temperature, white balance
6.【OpenCV】7 – 運用 OpenCV 為圖片增加一些顆粒感 (增加高斯噪點) add gaussian noise
7.【OpenCV】8 – 運用 OpenCV 改變圖片的對比度 modify contrast (內含:網路上常見錯誤調整對比度方式的分析)
8.【OpenCV】9 – 運用 OpenCV 降低圖片的高光 reduce highlights
9.【OpenCV】11 – OpenCV 建立新空白圖、畫點、畫圓 create new pictures, draw points and draw circle
10.【OpenCV】12 – 運用 OpenCV 畫線、畫矩形、畫橢圓 draw lines, draw rectangle, draw ellipse
11.【OpenCV】13 – 運用 OpenCV 在圖片上寫文字、查色碼、顯示色碼顏色 write text, get and show RGB Color Code
⭐進階圖像處理篇⭐:
1.【OpenCV】14 – 運用 OpenCV 顯示圖片直方圖、分離與合併RGB通道 show histogram, split, merge RGB channel
2.【OpenCV】15 – OpenCV 當然也有像 ps 圖層的功能! 什麼?圖片也能加減法?! Add, Subtract, AddWeighted
3.【OpenCV】16 – 運用 OpenCV 幫助我們找圖片的輪廓(高斯模糊、Canny) cv2.GaussianBlur, cv2.Canny
4.【OpenCV】17 – 運用 OpenCV 的終極圖層處理大全, 想P圖該怎麼P (bitwise_or, and, xor, not, addWeighted)
5.【OpenCV】18 – 運用 OpenCV 做圖片二值化,產生黑白的圖片吧!cv2.threshold 各種選擇參數大全
6.【OpenCV】19 – OpenCV 的圖片自適應二值化,產生更好效果的黑白圖片!cv2.adaptiveThreshold
7.【OpenCV】20 – OpenCV 的各種 Threshold 方法整理,Otsu’s Threshold 大津二值化,自動計算最佳閥值,做出最好的黑白效果圖!
8.【OpenCV】26 – 銳化圖片,將模糊的圖片變得更清晰吧! sharpen images
⭐冷門應用篇⭐:
1.【OpenCV】python OpenCV 分析影像模糊程度 檢測圖片模糊 blur sample code (內含範例程式碼)
2.【OpenCV】21 – OpenCV 也有 photoshop 的魔術棒工具?! 漫水填充法 cv2.floodFill (Magic Wand Tool)
3.【OpenCV】27 – 顏色映射 – OpenCV 內建的自動配色?! auto recolor images, cv2.applyColorMap
⭐影片處理篇⭐:
1.【OpenCV】OpenCV 利用 python OpenCV 將圖片製作成一部影片 (內附程式碼) make video from images
2.【OpenCV】OpenCV 利用 python OpenCV 將一部影片拆成一張張圖片 sample code (內附程式碼) get images from video
3.【OpenCV】用 OpenCV 開啟 rtsp 即時影像串流 sample code (內含範例程式碼) – python OpenCV rtsp
4.【OpenCV】python pyinotify video player 利用 OpenCV + inotify 製作即時影片播放器 sample code (內含範例程式碼)
⭐綜合應用篇⭐:
1.【OpenCV】10 – 日系濾鏡總集篇,運用 OpenCV 製作屬於自己的濾鏡吧 (內含可於網頁上直接完成濾鏡的 colab )
2.【OpenCV】22 – 綜合運用1,用 OpenCV 來P圖囉! 來運用各種之前學習的各種東西吧! merge two images
3.【OpenCV】23 – 綜合運用2,(資料標註) 用 OpenCV 來製作一個標記點小工具吧! 滑鼠與視窗控制 label points
4.【OpenCV】24 – 綜合運用3,(應用app) 用 OpenCV 來製作一個照片文件掃描機吧! photo scanner 透視投影
5.【OpenCV】25 – 綜合運用4,用 OpenCV 來把圖片p到各種奇怪的地方吧! 透視投影 cv2.warpPerspective, merge two images
6.【OpenCV】28 – Final Project v1,於是沒錢買ps的我,開發了自己的photoshop,我的天啊 My photoshop made by OpenCV
7.【OpenCV】29 – Final Project v2,於是沒錢買ps的我,開發了自己的photoshop,我的天啊 My photoshop made by OpenCV
8.【OpenCV】30 – Final Project v3,於是沒錢買ps的我,開發了自己的photoshop,我的天啊 My photoshop made by OpenCV