- 線上繳交測試系統 http://sprout.tw/oj/
- LMS大作業上傳系統 http://lang2016.sprout.tw/
週次 | 上課練習 | 勾選作業 | 加分題 |
---|---|---|---|
第一週 0227 | 12-交換測試 291-高斯符號 | 288-練習打字、289-福祿猴的反敗 | 290-車牌檢查碼 |
第二週 0305 | 294-我愛零分 | 295-三角形判斷、296-多運動有益身心健康、298-計算成績 | 300-遊蕩 |
第三週 0312 | 311-Go!、325-植樹的法則(死限延長) | 321-無限期支持資電館開門 | |
第四週 0319 | 332-單字還原(北區) | 329-大雄的打字機、331-告白密文 | 328-計算機 |
第五週 0326 | 226-成績統計(北區) | 344-拯救地球、345-A.伊布的邀請(函數版) | |
第七週 0409 | 346-大雄的最大公因數 | ||
第十週 0430 | 235-成績交換、359-還我臭臭泥、366-電話銷售員 | ||
第十一週 0507 | 369-書瑾與他的泡泡們 | 236-榜單排序、370-園遊會、371-古蹟の自燃發電 | |
第十二週 0514 | 153-文字轉轉轉 | 343-簡單的加法、385-Winston 竟然發廢文 | 352-SuDoKu |
第十三週 0521 | 387-紙包雞、389-Vim | 392-美國隊長 英雄內戰 | |
第十四週 0528 | 無 |
- 請在04 / 09 (六) 23:59前上傳至 sprout LMS 作業上傳系統
- 請把所有檔案以zip壓縮,再命名為
project01
,詳細格式如下 - 裡面有兩個資料夾分別是1, 2,1底下放error diffusion作業,2底下放你自由創作的的作業。
readme.txt
請簡要說明你這個部份做了什麼,或者你那些沒做,方便評分。mountain_in.bmp
你可以自由更改名稱或圖片大小,但是要記得一併更改bmp_hdlr.h
project01.zip
├── 1
│ ├── bmp_error_diffuse.cpp
│ ├── bmp_gray_scale.cpp
│ ├── bmp_thresholding.cpp
│ ├── readme.txt // [簡要說明你這個部份做了什麼]
│ └── bmp_hdlr.h
└── 2
├── bmp_bonus.cpp // [「自由發揮」部份的code]
├── mountain_in.bmp // [輸入圖片,這個檔名可以不同]
├── readme.txt // [簡要說明你這個部份做了什麼]
└── bmp_hdlr.h
在你寫的code的同個資料夾下,必須要有bmp_hdlr.h
與mountain_in.bmp
,
然後你寫的code大致向下面這樣,編譯並執行後便會輸出檔案mountain_out.bmp
#include <iostream>
#include "bmp_hdlr.h"
int canvas_r[height][width], canvas_g[height][width], canvas_b[height][width];
int main()
{
// 看你想做什麼~
}
警告:使用自己的圖片非常麻煩!想要用自己的圖,就要做好處理一堆麻煩的準備!
如果你很想在第二部份自由創作使用自己的圖片的話,請把你的圖片拿去這個網站
轉成bmp檔,再編輯bmp_hdlr.h
中的參數:
width
: 寬height
: 高bmp_in
: 輸入檔案bmp_out
: 輸出檔案
// Here you can adjust value of width and height
static const int width = 960, height = 639; // should use 'size_t' though
// Here you can set filename of input image and output image
static const char *bmp_out = "mountain_out.bmp", *bmp_in = "mountain_in.bmp";
- Homework 1, 2 每遲交一天扣 5%
- Homework 3 只允許遲交到 7/4 23:59 ,逾期以 0 分計算
- 作業檔案 521(HW1) - 請下載下面的 528 新版
- 作業檔案 528(HW2) - 請下載下面的 609 新版
- 作業檔案 609(HW3)
- opencv投影片0 - 介紹
- opencv投影片1 - homework01 高斯模糊
- opencv投影片2 - sprout_opencv.h documentation 0.1 RC for 作業檔案 521
- opencv投影片3 - homework02 人臉馬賽克
- opencv投影片4 - sprout_opencv.h documentation 0.2 RC for 作業檔案 528
- opencv投影片5 - homework03 笑面男
- opencv投影片6 - sprout_opencv.h documentation 0.3 RC for 作業檔案 609
- 請使用 作業檔案 521來完成本作業。
- 請在06 / 02 (四) 23:59前上傳至 sprout LMS 作業上傳系統
- 請把所有檔案以zip壓縮,再命名為
project02
,詳細格式如下
project02.zip
├── lena.jpg
├── sprout_opencv.h
└── blur.cpp
在你寫的程式碼的同個資料夾下,必須有sprout_opencv.h
與lena.jpg
(或是自行設定正確的路徑)。
實作一支程式 blur.cpp
,會將 lena.jpg
讀入,並用作業中的五種參數做高斯模糊,輸出 lena1.jpg
~ lena5.jpg
五個圖檔。
檔名 | 參數 |
---|---|
lena1.jpg | Kernel size 7 x 7, sigmaX = 1 |
lena2.jpg | Kernel size 7 x 7, sigmaX = 2 |
lena3.jpg | Kernel size 7 x 7, sigmaX = 3 |
lena4.jpg | Kernel size 11 x 11, sigmaX = 5 |
lena5.jpg | Kernel size 21 x 21, sigmaX = 5 |
SproutMatrix loadImage(const std::string &path)
SproutMatrix gaussianBlurOnImage(const SproutMatrix &src, int kernelSize, double sigmaX)
void displayImageWithTitle(const SproutMatrix &img, const std::string &title)
void waitKeyInput()
void writeImage(const std::string &path, const SproutMatrix &img)
詳細參數解釋請參考 sprout_opencv.h
。
- 請使用 作業檔案 528 來完成本作業。
- 請在06 / 10 (五) 23:59前上傳至 sprout LMS 作業上傳系統
- 請把所有檔案以zip壓縮,再命名為
project02-hw2
,詳細格式如下
project02-hw2.zip
├── images
└── faces.jpg
├── sprout_opencv.h
└── faceblur.cpp
在你寫的程式碼的同個資料夾下,必須有sprout_opencv.h
與images 中的 faces.jpg
(或是自行設定正確的路徑)。
實作一支程式 faceblur.cpp
,會將 images 資料夾中的 faces.jpg
讀入,並依照作業需求將上頭的四張人臉打上模糊化,並使用 writeImage
輸出一張facesblur.jpg
圖檔。
SproutMatrix createNewImage(int rows, int cols)
SproutMatrix loadImage(const std::string &path)
SproutMatrix drawCircleOnImage(const SproutMatrix &img, const SproutPoint ¢er, int radius, int R, int G, int B)
SproutMatrix gaussianBlurOnImage(const SproutMatrix &src, int kernelSize, double sigmaX)
void writeImage(const std::string &path, const SproutMatrix &img)
std::vector<SproutRectangle> getFacesFromMatrixWithSize(const SproutMatrix &img, const int smallSize, const int largeSize)
int sproutRound(const double value)
SproutMatrix copyImageWithMask(const SproutMatrix &base, const SproutMatrix &src, const SproutMatrix &mask)
詳細參數解釋請參考 sprout_opencv.h
。
- 請使用 作業檔案 609 來完成本作業。
- 請在07 / 2 (六) 23:59前上傳至 sprout LMS 作業上傳系統
- 如果有做加分項目,請多寫一個 README 檔案告訴我們你多做了哪些功能!
- 請把所有檔案以zip壓縮,再命名為
project02-hw3
,詳細格式如下
project02-hw3.zip
├── sprout_opencv.h
├── README
└── laughingman.cpp
- 在你寫的程式碼的同個資料夾下,必須有
sprout_opencv.h
、obama.mp4
與laughing_man
的圖片(或是自行設定正確的路徑)。 - 請將
obama.mp4
與laughing_man
資料夾放在跟程式碼同一個資料夾下。 - 詳細的格式如下,但請記得上傳作業時請勿將
obama.mp4
和laughint_man
資料夾上傳,檔案會太大。
├── sprout_opencv.h
├── README
├── laughingman.cpp
├── obama.mp4
└── laughing_man/laugh_nbg/
實作一支程式 laughingman.cpp
,會將 obama.mp4
讀入,並依照作業需求
將 obama.mp4
中出現的人臉都打上笑面男的圖像,最後輸出一個 output.mp4
的檔案。
- 請記得將 Dev-C++ 右上角的編譯選項改為 TDM-GCC x64 Release / OpenCV 3.10
- 請不要使用 Dev-C++ 的專案,直接開啟一個檔案即可。