実現したいこと
ただの緑色と黒色の縞模様を作りたいのに、拡大するとグラデーションが出てきて単色の縞模様ではない
おそらく画像を自然に見せるために隣接するピクセルを少し暗くしているのだと思う
環境としてはvscodeを使ってpythonにopencvとnumpyをライブラリとしてインストールしました
発生している問題・分からないこと
どうすれば、単色の縞模様になるのかわからない
本来なら(0,0,0)の黒の縦線と(0,255,0)の緑の縞模様の繰り返しになるはずなのにそうならない
調べてもアンチエイリアスのやり方などが引っ掛かってくるためプログラムの修正を行いたいです
該当のソースコード
Python
1import cv2 2import numpy as np 3 4# OpenCVのバージョンを表示5print(cv2.__version__) # 3.3.06 7# (360, 640, 3)の白い画像を作成し、データ型をuint8に設定8img = np.full((360, 640, 3), 255, dtype=np.uint8)9 10# ストライプの幅と黒い部分の幅を設定11stripe_width = 612black_width = 613 14# 画像の各ピクセルに対してストライプを描画するループ15for y in range(img.shape[0]):16 for x in range(img.shape[1]):17 # ストライプの位置を計算し、黒6ピクセル白6ピクセルの繰り返しに設定18 stripe_position = (x // stripe_width) % 219 if stripe_position == 0:20 img[y, x] = (0, 0, 0) # 黒のストライプ21 else:22 img[y, x] = (0, 255, 0) # 緑のストライプ23 24# 生成された画像を"stripes1_modified.jpg"として保存25cv2.imwrite("6pixel_stripes1.jpg", img)
試したこと・調べたこと
上記の詳細・結果
知人に聞いた際には色の指定を二色しか指定していないのに他の色が出てくる理由がわからない
ネットではアンチエイリアスの話が出てくる
自分なりにデータ型などを変更したが真っ黒な画面になる
最近はchatgptなどに聞いたが、同じく真っ黒な画面や線幅を変えてくる。根本のグラデーションを直す部分には変化がなかった
補足
特になし

0 コメント