Initial commit: ノーコード画像検査アプリ (MVP + 追加機能一式)
検査レシピ=処理/検査ステップの縦リスト(配線なし)。yfoxlib(yfoximg/yfoxbase)使用。 - ビジュアル・パイプライン(カード+適用後サムネイル+緑/赤 合否) - テンプレート/対話式ウィザードでレシピ生成(CTaskDialog) - パラメータのスライダー・ライブ調整 - レシピ保存/読込(*.itr) + 最近使ったファイル(MRU) - 検査範囲(ROI)を複数マウス指定(ドラッグ追加/右クリック削除) - カードのドラッグ並べ替え - 判定結果画像の保存 + 検査ログCSV(項目拡張) - 処理6種+検査3種(明るさ/白画素率/塊の数) - /selftest(実行+レシピ往復+結果画像+複数ROI塊カウント検証)、/demo Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
//
|
||||
// App.cpp - CWinApp。GDI+ 起動、/selftest の分岐、メインウィンドウ生成。
|
||||
//
|
||||
#include "stdafx.h"
|
||||
#include "App.h"
|
||||
#include "MainFrame.h"
|
||||
#include "SelfTest.h"
|
||||
|
||||
CImgTestApp theApp;
|
||||
|
||||
CImgTestApp::CImgTestApp() {}
|
||||
|
||||
BOOL CImgTestApp::InitInstance()
|
||||
{
|
||||
CWinApp::InitInstance();
|
||||
|
||||
// 設定(最近使ったレシピ 等)を HKCU\Software\YFox\ImgTestSystem に保存。
|
||||
SetRegistryKey(L"YFox");
|
||||
|
||||
// GDI+ 起動(CImage/CImageEx が JPEG/PNG 読込に使用)。
|
||||
Gdiplus::GdiplusStartupInput gdiInput;
|
||||
Gdiplus::GdiplusStartup(&m_gdiplusToken, &gdiInput, NULL);
|
||||
|
||||
// コマンドライン /selftest はヘッドレス自己検証を実行して終了。
|
||||
CString cmd = m_lpCmdLine;
|
||||
if (cmd.MakeLower().Find(L"/selftest") >= 0)
|
||||
{
|
||||
int rc = selftest::Run();
|
||||
return FALSE; // UI を出さず終了(ExitInstance で GDI+ 停止)
|
||||
(void)rc;
|
||||
}
|
||||
if (cmd.MakeLower().Find(L"/demosave") >= 0)
|
||||
{
|
||||
selftest::SaveDemoResult(L"demo_result.png");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
CMainFrame* pFrame = new CMainFrame;
|
||||
if (!pFrame->Create(NULL, L"ImgTestSystem - ノーコード画像検査",
|
||||
WS_OVERLAPPEDWINDOW, CFrameWnd::rectDefault, NULL, NULL))
|
||||
{
|
||||
delete pFrame;
|
||||
return FALSE;
|
||||
}
|
||||
m_pMainWnd = pFrame;
|
||||
pFrame->ShowWindow(SW_SHOW);
|
||||
pFrame->UpdateWindow();
|
||||
|
||||
if (cmd.Find(L"/demo") >= 0)
|
||||
pFrame->LoadDemo();
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
int CImgTestApp::ExitInstance()
|
||||
{
|
||||
if (m_gdiplusToken)
|
||||
Gdiplus::GdiplusShutdown(m_gdiplusToken);
|
||||
return CWinApp::ExitInstance();
|
||||
}
|
||||
Reference in New Issue
Block a user