応用プログラミング及び実習 2020年度 ex05

Table of Contents

ex05A

ex05kadaiA.ipynb

  1. 上記のリンク先から notebook ファイルをダウンロードして開く
    • リンク先の画面右の方の「Raw」を クリックして「リンク先を別名で保存」とかそんなん
  2. そこに記された指示にしたがって notebook を編集して保存
  3. その notebook ファイルを以下の提出場所へ提出

提出場所: この授業のMoodleコースex05A

ex05B

ex05A のつづきで,文字列を入力したら単語内の文字をひっくり返して出力してくれるプログラムを作りましょう. 名前は ex05reverse.py としてください(名前間違えないように).

step1

次のような関数 reverseSentence() の定義を書いて,動作確認しよう.

step2

プログラムの末尾に,次のようなコードを挿入して実行しよう.読み込むファイルはこちら: ex05msg.txt

fn = "ex05msg.txt"
with open(fn, "r", encoding="utf-8") as f:  # ファイル名 fn のファイルを読み込みモードで開く
    for line in f:        # ファイルから1行ずつ読み込んでループ
        print(line)       # そのまま表示

上記の for 文の中を修正して,読み込んだファイルの各行に reverseSentence() を適用した結果を出力するようにしてください.

step3

プログラムの末尾に次のコードを追加し,文字列を自分の情報に書き換えて動作確認しましょう. 確認できたら,提出しましょう.

myID = "A01055   ほげ   ほげお"   #  学籍番号,姓,名を空白区切りで
print(reverseSentence(reverseSentence(myID)))

提出場所: この授業のMoodleコースex05B

ex05S (omake)

これはおまけ課題です.やらなくても減点はありません.やったら棒茄子?

画像処理してみよう

blackuni3.png

  1. 以下では OpenCV という,コンピュータビジョン(コンピュータに人間のような視覚をもたせる方法を考える研究開発分野)のためのライブラリを利用します.次のようにしてインストールしてください(macのひとはpip3).
    pip install  opencv-python
  2. 上記の画像を手元に保存しなさい.
  3. 次のプログラムを実行しなさい.ファイル名は ex05S.py としよう.
    import cv2           # OpenCV モジュール
    
    # 画像の読み込み
    img = cv2.imread('blackuni3.png')
    if img is None:
        print('File Not Found')
    print(img.shape)  # 正しく読み込めたら, img は NumPy の3次元配列になる(カラーの場合)
    
    # 画像を表示
    cv2.imshow("hoge", img)
    cv2.waitKey(0)   # 画像を表示したウィンドウ内で何かキーが押されるまで待つ
    
    # 画像を書き込み
    cv2.imwrite("hoge.png", img)
    
  4. 上記の画像とは別の画像を使って実行してみよう.
  5. 上記を書き換えて遊ぼう.ただし,次の処理を必ず行うこと.情報収集は「opencv python ほげ」でウェブ検索したりがよいだろう.
    • 左右and/or上下反転
    • 色反転(画素値を反転させる)
    • ググると bitwise_notを使う方法が出てくるでしょう.それを使う場合,それでなぜ画素値の反転ができるのかを考えて,コメントとして書いてください
    • bitwise_not を使わない場合,「255から元の画素値を引く」で実現できます.こちらのやり方する場合も,それでなぜできるのかをコメントに書きましょう
    • 画像の大きさを変える
    • 適当に上記のもの以外の何か面白い処理を追加

(おまけのおまけ)カメラ付きのPCまたはウェブカメラを持ってるひとは,以下のプログラムを実行してみるとよいでしょう.

import cv2

cap = cv2.VideoCapture(0)

while(True):
    rv, frame = cap.read()
    cv2.imshow('hoge', frame)
    if cv2.waitKey(1) == ord('q'):
        break
        
cap.release()
cv2.destroyAllWindows()

トップ   編集 凍結解除 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-11-02 (月) 18:26:59