iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 30
0
Software Development

【錢不夠買ps的我,只好用OpenCV來修圖了!】系列 第 30

【沒錢ps,我用OpenCV!】Day 30 - Final Project v3,於是沒錢買ps的我,開發了自己的photoshop,我的天啊 My photoshop made by OpenCV

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,
之後還是會繼續寫,不定期更新,
我會繼續把實用的函數整理起來等著以後自用與順便幫助別人,
以上,再次感謝所有支持我的人們。


上一篇
【沒錢ps,我用OpenCV!】Day 29 - Final Project v2,於是沒錢買ps的我,開發了自己的photoshop,我的天啊 My photoshop made by OpenCV
系列文
【錢不夠買ps的我,只好用OpenCV來修圖了!】30

尚未有邦友留言

立即登入留言