[解決済み] PythonでOpenCVを使った画像の反転処理
2023-04-16 02:14:59
質問
カラー画像を読み込み、グレースケールに変換した後、ファイル内のデータを反転させたいのですが。
必要なこと:OpenCVで配列を繰り返し、この式で一つ一つの値を変更すること(間違っているかもしれませんが、私にとっては合理的だと思います)。
img[x,y] = abs(img[x,y] - 255)
が、なぜかうまくいきません。
def inverte(imagem, name):
imagem = abs(imagem - 255)
cv2.imwrite(name, imagem)
def inverte2(imagem, name):
for x in np.nditer(imagem, op_flags=['readwrite']):
x = abs(x - 255)
cv2.imwrite(name, imagem)
if __name__ == '__main__':
nome = str(sys.argv[1])
image = cv2.imread(nome)
gs_imagem = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
inverte(gs_imagem, "invertida.png")
inverte2(gs_imagem, "invertida2.png")
私は明示的なループを実行したくない(私はより多くのpythonicであることを試みている)。私は白い背景を得た1つの画像で黒くなったことを見ることができますが、これだけでは他の色があまり(もしあれば)変化しているように見えません。
どのように解決するのですか?
もう少しで成功するところでしたね。という事実にだまされたのですね。
abs(imagem-255)
は間違った結果をもたらします。
dtype
は符号なし整数だからです。そのため
(255-imagem)
を使うことで、整数を符号なしにしています。
def inverte(imagem, name):
imagem = (255-imagem)
cv2.imwrite(name, imagem)
また、画像を反転させるには
bitwise_not
という関数を使って画像を反転させることもできます.
imagem = cv2.bitwise_not(imagem)
関連
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] Pythonで2つのリストを連結する方法は?
-
[解決済み] Pythonで例外を手動で発生(スロー)させる
-
[解決済み] pipでPythonの全パッケージをアップグレードする方法
-
[解決済み】ネストされたディレクトリを安全に作成するには?
-
[解決済み】画像処理。コカ・コーラ缶」認識のためのアルゴリズム改良
-
[解決済み】Pythonに三項条件演算子はありますか?
-
[解決済み] Django 1.7で初期マイグレーションからマイグレートバックする方法は?
-
[解決済み] pipの依存性/必要条件をリストアップする方法はありますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Pythonのキャッシュライブラリはありますか?
-
[解決済み] pandasのDataFrameから空のセルを含む行を削除する
-
[解決済み] googletransがエラー 'NoneType' オブジェクトに 'group' 属性がない、と言って動かなくなった。
-
[解決済み] 小数点以下1桁を取得する[重複]。
-
[解決済み] Python 3でバイナリデータを標準出力に書き込むには?
-
[解決済み] 範囲指定された浮動小数点数のランダムな配列を生成します。
-
[解決済み] 異なる順序で同じ要素を持つ2つのJSONオブジェクトを等しく比較するには?
-
[解決済み] CSVデータを処理する際、1行目のデータを無視する方法を教えてください。
-
[解決済み] Pandasを使って、既存のExcelファイルに新しいシートを保存する方法は?
-
[解決済み] Alembicアップグレードスクリプトでインサートやアップデートを実行するにはどうすればよいですか?