また、非常に長い時間が、それはあまりにも忙しいですタイトルを書いていない程度の書き込みにここでGETに遭遇したカリキュラムの設計上の問題を......らしい...... ...... ......枯れ
カリキュラムの設計を取得し、これらの日では、ソフトウェアの開発が主要な画像処理では、画像を転送する責任の基本的なプロセスの量は、携帯電話側で、サービス側が受信して、適切なPythonの画像処理プログラムを呼び出し、に対処し、その後治療携帯電話にバックアップして画像を表示します。
あなたは常にmatplotlib.pyplotの関数imshowの必要性に、処理後の画像を見たい場合、プログラムは、常にこのような状況のpythonの出会いを取得すると、それは本来の処理時間の画像を保存することである、常に多くの場合、黒になり通常の画像を参照してください、そして、あなたが保存するsavefig matplotlib.pyplotを使用する場合、最終的な画像処理をフレームし、画質の保存と処理が良好ではない、と私はそう、本来の意図を開発されたソフトウェアが一致していませんします私は黒の問題を解決することができる画像matplotlib.pyplotを保存することはできませんされていない方法を探していました。
私のニーズを満たすソリューションを見つけるためにオンラインで行くことがありました、結果はsavefigのすべてmatplotlib.pyplotと周りを見回した......何の果物は、それ自体のみを解決しません!
私は、フーリエ変換され、ここで持って、例えば、画像処理はこれを下回っています。
初めに、私たちは、このプログラムに対処し、画像を保存します。
1つの インポートCV2 2 3 インポートNPとしてnumpyの 4 5 から matplotlibのをインポートPLTとしてpyplot 6 7(IMG = cv2.imread ' ://report_pic//test.jpg E ' 、0) 8 9 = F np.fft.fft2( IMG) 10 11 fshift = np.fft.fftshift(F) 12 13、S1 = np.log(np.abs(fshift)) 14 15 fimg = np.log(np.abs(F)) 16 17 fimg = NP。 ABS(S1) 18 19 cv2.imwrite(' E://report_pic//ntest.jpg '、fimg)
以下が発見されるように処理した後、画像を表示するために完了しています
、比較的無知な力は、問題を見つけるために、処理行列の出力は、次のようでした
1つの インポートCV2 2 3 インポートNPとしてnumpyの 4 5 から matplotlibのをインポートPLTとしてpyplot 6 7(IMG = cv2.imread ' ://report_pic//test.jpg E ' 、0) 8 9 = F np.fft.fft2( IMG) 10 11 fshift = np.fft.fftshift(F) 12 13、S1 = np.log(np.abs(fshift)) 14 15 プリント(" fshift = " ) 16 17 プリント(fshift) 18 19 fimg = np.log(np.abs(F)) 20 21 fimg = np.abs(S1) 22 23 プリント(" lenは(fimg)= " ) 24 25 プリント(LEN(fimg)) 26 27 プリント(" LEN(fimg [0])= " ) 28 29 プリント(LEN(fimg [0])) 30 31 プリント(" fimg = 」) 32 33 プリント(fimg) 34 35 cv2.imwrite(' E:// report_pic / /ntest.jpg"、fimg)
以下の結果出力、
実際には、fimgがあった問題を発見 - カラー表示が黒である場合、グレー値が非常に低く、接触グレー値0です。自体は非常に低いグレー値画像 - だから、画像も黒の理由を理解して保存します。しかし、私たちが必要とする画像もそれを見ることはありません参照、スペクトルうん、このような低い値はありますか?
問題の「見た目」を解決するために、私は最初の最大階調値255を乗じて正規化し、それぞれの最大 - 最小正規化され、その後、グレー値を使用し、我々は「、私たちが欲しいものを得る見ることができますの」スペクトルを参照してください!以下のコードを、
1 #コード:UTF-8 2 3 インポートCV2 4 5 インポートNPとしてnumpyの 6 7 から matplotlibのをインポートPLTとしてpyplot 8 9 IMG = cv2.imread(' E://report_pic//test.jpg ' 、0) 10 11 F = np.fft.fft2(IMG) 12 13 fshift = np.fft.fftshift(F) 14 15、S1 = np.log(np.abs(fshift)) 16 17 #プリント( "fshift =") 18 19 #印刷(fshift) 20 21 fimg = np.log(np.abs(F)) 22 23 fimg = np.abs(S1) 24 25 #プリント( "lenは(fimg)=") 26 27 #プリント(LEN(fimg)) 28 29 #プリント( "lenの(fimg [0])=") 30 31 #プリント(LEN(fimg [0])) 32 33 #プリント( "fimg =") 34 35 #プリント(fimg) 36 37 cv2.imwrite(' E://report_pic//ntest.jpg ' 、fimg) 38 39 MAXX = -1 40 41ミネソタ州= 100000 42 43 のための I における範囲(LEN(fimg)): 44 45 であれば MAXX < MAX(fimg [I]): 46 47 MAXX = MAX(fimg [I]) 48 49 であれば分> 分(fimg [I]): 50 51 ミネソタ州= 分(fimg [I]) 52 53 #プリント(MAXX、ミネソタ州)#fimg里的最大最小灰度值 54 55 のための I における範囲(LEN(fimg)): 56 57 のための J における範囲(LEN (fimg [I])): 58 59 fimg [I] [J] = 255 *(fimg [I] [J] -minn)/(maxx-ミネソタ州) 60 61 cv2.imwrite(' E://report_pic//rtest.jpg '、fimg)
結果は以下の画像を処理している、我々は非常に明確に見つかっ見ることができます!
「オールブラック」保存するために他の画像処理の場合、それがあるかどうか、グレースケールの1チャネルのみ、またはRGBの3つのチャンネルを持って、私はあなたがこの方法でプログラム処理を記述しようとすることができると思います、チャンスは成功しています。
私たちは〜ハを助けるために願っています