「画像、画像上の2点の座標、そして色が指定されているとき、その2点を結ぶ指定された色の直線を画像に書き加える関数を作れ。座標はy座標・x座標の順に入力するものとする。以下は実行例である。頂点としては(2,0)と(3,2)を指定している。」という問題です。jupyter notebookを使用しています。
実行例は次です。
python3
1image = [[0, 0, 0, 0, 0], 2 [0, 0, 0, 0, 0], 3 [0, 0, 0, 0, 0], 4 [0, 0, 0, 0, 0]](return) 5 6ex5_6(image, 0, 2, 2, 3, 0.5)(return) 7 8image(return) 9 10image = [[0, 0, 0.5, 0, 0], 11 [0, 0, 0.5, 0, 0], 12 [0, 0, 0, 0.5, 0], 13 [0, 0, 0, 0, 0]] 14
このような操作もできないのはお恥ずかしい次第です。次のようにプログラムしましたが間違っているのは明らかながら、どのようにすればいいのか思いつきません。お教えください。コードはnumpyなどを使わず、愚直に基本的な書き方で書きたいと思っています。
python3
1 2def ex5_6(image, y1, x1, y2, x2, color): 3 for i in range(len(image)): 4 for j in range(len(image[i])): 5 if y1<= i <= y2 and x1 <= j <= x2: 6 if j%2 == 1: 7 j = j-1 8 image[i][j] = color 9
上記のコードの結果は次です。
python3
1 2[[0, 0, 0.5, 0, 0], [0, 0, 0.5, 0, 0], [0, 0, 0.5, 0, 0], [0, 0, 0, 0, 0]] 3
ほしい結果は次です。
python3
1image = [[0, 0, 0.5, 0, 0], 2 [0, 0, 0.5, 0, 0], 3 [0, 0, 0, 0.5, 0], 4 [0, 0, 0, 0, 0]]
これを画像化
python3
1 2ita.plot.image_show(image)
回答2件
あなたの回答
tips
プレビュー