加工後シート検査の設定プログラムでリサイズできない件 リサイズのコードに問題があるか、Webで調べてみても、問題が無さそう。 どうも、カメラと解像度の選択設定を分離して関数化したのが怪しそう。 global変数の設定の色が濃い青で違うことに意味があるかも。 と思い、色違いの変数を( )内で受け渡しするように変更してみた。 def camera_dsp_select ( IMX1 , CAY1 , CAX1 , DL , VCAP1 , DSP , DY1 , FCS , DX1 , SY1 , SX1 , FONT1 ): global window01 return IMX1 , CAY1 , CAX1 , DL , VCAP1 , DSP , DY1 , FCS , DX1 , SY1 , SX1 , FONT1 IMX1 , CAY1 , CAX1 , DL , VCAP1 , DSP , DY1 , FCS , DX1 , SY1 , SX1 , FONT1 = camera_dsp_select ( IMX1 , CAY1 , CAX1 , DL , VCAP1 , DSP , DY1 , FCS , DX1 , SY1 , SX1 , FONT1 ) すると、カメラ撮影の画像サイズが、リサイズして表示されるようになった。 global変数を理解できておらず、行き当たりばったりのプログラミングになっている。 また、カメラの選定にも問題があるようで、リサイズ表示できるカメラとできないカメラがあった。 カメラ選定、カメラの仕様毎の調整設定部分を見直して、IMX298、IMX577、IMX179の3種全部のカメラでリサイズできるようにした。 まだ、初期画像撮影時のみ、トリミング予定範囲の表示が表示範囲からはみ出すバグが残るので、この後修正していく。 IMX298カメラモジュールは、 cap.get(cv2.CAP_PROP_FRAME_WIDTH)で解像度設定を正常にできたか確認できないなど、 撮影解像度、FPS、 設定変更の可不可、 設定の待ち時間、設定の呼び出しの可不可等が異なる、3種類のカメラモジュールを使用できるようにしようとしているため、プログラ...
投稿
6月, 2024の投稿を表示しています
- リンクを取得
- ×
- メール
- 他のアプリ
加工後シート検査の設定プログラムを作成していたが、カメラの撮影が正常(ret=True)だと返してくるのだが、 どうしてもリサイズできない。 frame= <class 'numpy.ndarray'>で返されるので正常のようだが、リサイズエラーが出る。 Python 3.12.1ではダメかと思い、 Python 3.12.4や 3.11.9を試してもダメ。 TkEasyGUI 0.2.69を0.2.71にアップデートしても、PySimpleGUI 4.60.5に変えてみてもダメ。 カメラをIMX298に替えてもダメ。 行き詰ったので、 if __name__ == '__main__' : をやめて、ベタなプログラムでとりあえず動くようにすることにした。 関数は残しつつ、プログラムを修正していると、プログラムミスは見つかったがリサイズに影響するものでは無い。 だが、修正が終わっても、同じようにリサイズでエラーが出る。 リサイズのコードに問題があると判断し、 frame_resized = cv2 . resize ( frame , ( SY1 , SX1 )) # 画面に収まるようにリサイズ を欠点判断後に使用していた frame_resized = cv2 . resize ( np . array ( frame ), ( SY1 , SX1 )) # 画面に収まるようにリサイズ に変えてみたら、エラーは出なくなった。 だがしかし、 エラーは出なくなったんだが、何故かリサイズではなく、画像の左上部分のトリミングで画面に表示される。 なんでやねん!!! ちゃんと「 cv2.resize」て指定してるやん!!! また、 if __name__ == '__main__' : を使用している方も変えてみると、 エラーは出なくなったが、同じように 、何故かリサイズではなく、画像の左上部分のトリミングで画面に表示される!!! Visual Studio Codeに変なキャッシュが残っていないかを疑い、 加工前シート検査の設定プログラムを動かしてみると frame_resized = cv2 . resize ( frame , ( SY1 , SX1 )) # 画面...
- リンクを取得
- ×
- メール
- 他のアプリ
加工後シート検査の設定プログラムを作成中。 起動直後に、センサー種、カメラNo.、画面解像度を選択後、初期設定に入るように変更中。 デスクトップ用のFHD専用と決めてはいるが、ノートパソコン等も使用できるようにしておき、設置時にこの関数の呼び出しをキャンセルするだけで、導入したパソコンシステム専用の プログラム化ができるようにしてみることにした。 def camera_dsp_select ( IMX1 ): global window01 # カメラと画面解像度の設定ウィンドウを表示 print ( datetime . datetime . now (), 'カメラ設定と画面解像度のウィンドウ生成' ) # カメラと画面解像度の設定ウィンドウのレイアウトを定義 layout01 = [[ sg . Text ( ' ' , font = ( 'Helvetica' , 30 ))], [ sg . Text ( ' カメラと画面解像度の設定を行ってください ' , font = ( 'Helvetica' , 30 ))], [ sg . Text ( ' ' , font = ( 'Helvetica' , 30 ))], [ sg . Text ( 'カメラセンサー IMX298(0),IMX577(1),IMX179(2)' )], [ sg . Slider ( range = ( 0 , 2 ), default_value = IMX1 , resolution = 1 , orientation...
- リンクを取得
- ×
- メール
- 他のアプリ
加工前シートの検査プログラムに、LED光源の点灯良否を目視確認することを追加した。 点灯確認は入れていたが、時間短く、点灯不良があっても、プログラムが完全起動するまで進んでいたので、改善。 点灯スタートボタンを作ろうかとも考えたが、プログラム起動直後に点灯確認するので、割愛した。 # LED光源チェックウィンドウのレイアウトを定義 layout00 = [[ sg . Text ( ' ' , font = ( 'Helvetica' , 30 ))], [ sg . Text ( ' 上下LED光源のチェックを行ってください ' , font = ( 'Helvetica' , 30 ))], [ sg . Text ( ' 下LED10秒点灯後、上LEDが点灯します ' , font = ( 'Helvetica' , 30 ))], [ sg . Text ( ' ' , font = ( 'Helvetica' , 30 ))], [ sg . Button ( ' 点灯OK(進む) ' , font = ( 'Helvetica' , 30 ))], [ sg . Text ( ' ' , font = ( 'Helvetica' , 30 ))], [ sg . Button ( ' 点灯不良(終了) ' , font = ( 'Helvetica' , 30 ))], [ sg . Text ( ' ...
- リンクを取得
- ×
- メール
- 他のアプリ
PythonをWeb独学で勉強し始めて11か月、今更ながら、複数の変数に同じ値を同時に設定する方法と、複数の変数に別々の値を同時に設定する方法を覚えた。 # グローバル変数を定義 cap = None ret = None frame = None window0 = None device2 = None window2 = None window = None IMX1 = None DL = None VCAP1 = None EXP1 = None TY1 = None TX1 = None TY2 = None TX2 = None DSP = None SPK = None FCS = None THEMEN = None CAY1 = None CAX1 = None DL = None FCS = None DY1 = None DX1 = None SY1 = None SX1 = None FONT1 = None THEME = None # FHDでの表示設定 DY1 = 1920 DX1 = 1080 SY1 = 1280 SX1 = 961 FONT1 = 11 が、 # グローバル変数を定義 cap = ret = frame = window0 = device2 = window2 = window = None IMX1 = DL = VCAP1 = EXP1 = TY1 = TX1 = TY2 = TX2 = DSP = SPK = FCS = THEMEN = None CAY1 = CAX1 = DY1 = DX1 = SY1 = SX1 = FONT1 = THEME = None # FHDでの表示設定 DY1 , DX1 , SY1 , SX1 , ...