前提・実現したいこと
BGR画像を分割したグレースケールの配列(※1補足情報に導出コード)と、その画像(※2補足情報参照)を保存し再度読み込ませた画像の最頻値などが異なります。
原因と解決策を知りたいです。
発生している問題
BGR画像を分割したグレースケールの配列(※1)と、その画像(※2)を保存し再度読み込ませた画像の最頻値などが異なります。
該当のソースコード
python
1import cv2 2import numpy as np 3from scipy import stats 4 5#輝度1以上の最頻値(配列から求める) 6RGB =cv2.split(img_green_masked) 7Blue = RGB[0] 8Brow = np.array(Blue).flatten() 9Bmode = stats.mode(Brow[Brow>0])[0][0] 10#-----------BmodeのBrowはBlueでも変化がありません。 11#-----------img_green_maskedは補足情報参照 12 13#輝度1以上の最頻値(Blueのimwite画像から求める) 14Brow_im = np.array(Brow_imwrite_picture).flatten() 15Bmode = stats.mode(Brow_im[Brow_im>0])[0][0]
補足情報(FW/ツールのバージョンなど)
(※1 グレースケールの配列のコード)
RGB =cv2.split(img_green_masked)
Blue = RGB[0]
Brow = np.array(Blue).flatten()
保存して再度読み出したところまで含めてコードを記載ください
承知しました。
申し訳ありませんが、コードを消してしまったため、質問のソースコードと画像ファイル名が異なっています。
最頻値の出力値は変わらないのですが、問題ないでしょうか?
#配列による最頻値計算と画像の保存
RGB =cv2.split(img_green_masked)
Blue = RGB[0]
cv2.imwrite("Blue.jpg",Blue)
Bmode = stats.mode(Blue[0<Blue]) [0][0]
print(Bmode)
#保存した画像の読み込みと最頻値計算
import cv2
import numpy as np
from scipy import stats
img=cv2.imread('/content/Blue.jpg')
B_mode = stats.mode(img[0<img]) [0][0]
print(B_mode)
ありがとうございます。jpegで保存して再度読み出していると確認できましたので、私の回答と整合取れていることを確認できました。
回答1件
あなたの回答
tips
プレビュー

