원래 프로젝트 : https://www.codeproject.com/Articles/99457/Edge-Based-Template-Matching

 

CodeProject

For those who code

www.codeproject.com

Opencv를 최신으로 업데이트 한 프로젝트 : https://github.com/sarthak-gupta-sg/Geometric-Match-OpenCV?tab=readme-ov-file

 

GitHub - sarthak-gupta-sg/Geometric-Match-OpenCV: Porting Edge based Template Matching to OpenCV 3/4

Porting Edge based Template Matching to OpenCV 3/4 - sarthak-gupta-sg/Geometric-Match-OpenCV

github.com

 

내가 테스트 한 소스 코드

GeoMatch_src(OPEN).7z
0.17MB

 

 

 

 

https://www.codeproject.com/Articles/1796/XListCtrl-A-custom-draw-list-control-with-subitem-

https://www.codeproject.com/Articles/1796/XListCtrl-A-custom-draw-list-control-with-subitem-

 

CodeProject

For those who code

www.codeproject.com

 

 

XListCtrl_demo - 복사본.7z
0.17MB

#include <windows.h>
#include <RestartManager.h>
#include <stdio.h>


#pragma comment(lib, "Rstrtmgr.lib")


int __cdecl wmain(int argc, WCHAR **argv)
{
	DWORD dwSession;

	PCWSTR pszFile = _T("D:\\R00RR0162232162_2023070523_MACHINE-ALARM.csv");
	HANDLE hFile = CreateFile(pszFile, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_ARCHIVE, NULL);
	auto thisProcID = GetProcessId(GetCurrentProcess());

	WCHAR szSessionKey[CCH_RM_SESSION_KEY + 1] = { 0 };
	DWORD dwError = RmStartSession(&dwSession, 0, szSessionKey);
	wprintf(L"RmStartSession returned %d\n", dwError);

	if (dwError == ERROR_SUCCESS) 
	{
		dwError = RmRegisterResources(dwSession, 1, &pszFile, 0, NULL, 0, NULL);
		wprintf(L"RmRegisterResources(%ls) returned %d\n", pszFile, dwError);
		if (dwError == ERROR_SUCCESS)
		{
			DWORD dwReason;
			UINT i;
			UINT nProcInfoNeeded;
			UINT nProcInfo = 10;
			RM_PROCESS_INFO rgpi[10];
			dwError = RmGetList(dwSession, &nProcInfoNeeded,
				&nProcInfo, rgpi, &dwReason);
			wprintf(L"RmGetList returned %d\n", dwError);
			if (dwError == ERROR_SUCCESS)
			{
				wprintf(L"RmGetList returned %d infos (%d needed)\n", nProcInfo, nProcInfoNeeded);
				for (i = 0; i < nProcInfo; i++)
				{
					wprintf(L"%d.ApplicationType = %d\n", i, rgpi[i].ApplicationType);
					wprintf(L"%d.strAppName = %ls\n", i, rgpi[i].strAppName);
					wprintf(L"%d.Process.dwProcessId = %d\n", i, rgpi[i].Process.dwProcessId);

					HANDLE hProcess = OpenProcess(PROCESS_QUERY_LIMITED_INFORMATION | PROCESS_TERMINATE,
						FALSE, rgpi[i].Process.dwProcessId);
					if (hProcess)
					{
						FILETIME ftCreate, ftExit, ftKernel, ftUser;

						if (GetProcessTimes(hProcess, &ftCreate, &ftExit, &ftKernel, &ftUser) &&
							CompareFileTime(&rgpi[i].Process.ProcessStartTime, &ftCreate) == 0)
						{
							WCHAR sz[MAX_PATH];
							DWORD cch = MAX_PATH;
							if (QueryFullProcessImageNameW(hProcess, 0, sz, &cch) && cch <= MAX_PATH)
							{
								wprintf(L"  = %ls\n", sz);
							}
						}

						if (thisProcID == rgpi[i].Process.dwProcessId)
						{
							wprintf(L"%d.Process.dwProcessId = %d  This is me.. I dont kill myself...\n", i, rgpi[i].Process.dwProcessId);
						}
						else
						{
							if (TerminateProcess(hProcess, 0))
							{
								wprintf(L"%d.Process.dwProcessId = %d  TerminateProcess ok\n", i, rgpi[i].Process.dwProcessId);
							}
							else
							{
								wprintf(L"%d.Process.dwProcessId = %d  TerminateProcess fail\n", i, rgpi[i].Process.dwProcessId);
							}
						}

						CloseHandle(hProcess);
					}
				}
			}
		}
		RmEndSession(dwSession);
	}


	CloseHandle(hFile);
	return 0;
}

전화번호 0507-1491-6288

 

 

 

내가 나중에 필요할 까봐 여기에 올려둠

아무나 사용해도 됨.

MD5 Hash : 4818f3d8d3fee5cda082f0d8cb24bf9623c4b750

EXE 파일 크기 : 328KB (335,872 바이트)

 

mspaint.zip
0.19MB

대충   이렇게 생긴 USB 형태의 Bluetooth 송수신 동글.

드라이버 다운로드는 여기서

Wide Applications:
1. Travelling: suitcase, handbag, travel bag, luggage, laptop, backpack, handbag, and so on.
2. Sports: gym locker, bike, bicycle, golf bags, and so on.
3. Public Areas: student dormitory, school locker, gym locker, employee locker, hospital locker, and so on.
4. Residential: door lock, gate, apartment lock, basement anti-theft security, and so on.
5. Business: office, hospital, fence, and so on.
6. Transportation: garage, toolbox, and so on .
7. Furniture: wardrobes, closet, cabinet, drawers, safes, and so on.


Specifications:
* Fingerprint reader: 96*96 sensor
* Waterproof level: IP56
* FRR:<1%
* FAR:<0.002%
* Material: zinc alloy
* Working voltage: 3.0-4.2V
* Lock weight and Size: 90g
* Lock size: 7.6*4.6*1.3(cm)
* Fingerprint sensor coverage: 72*64MM
*Unlock speed: within 0.5 second
*working period: a year per power Charge
* LED light: three color light: red / blue / green
* Battery: 3.7V lithium build in battery
* Working temperature: -10~+40 degrees Celsius
* Fingerprint capacity: record 10 times and save 10 groups

 

 

 

 

 

 

 

 

1. 저장하기

import tensorflow.compat.v1 as tf
import numpy as np
import gym
from collections import deque
import random
import os

tf.disable_v2_behavior()


def createFolder(directory):
    try:
        if not os.path.exists(directory):
            os.makedirs(directory)
    except OSError:
        print ('Error: Creating directory. ' +  directory)


sess = tf.Session()


DQNmain = DQNet(sess, input_size, output_size, "DQNMain")
modelSaver= tf.train.Saver(var_list= tf.global_variables(), allow_empty=False)
sess.run( tf.global_variables_initializer())

.....
.....

여러 코드 구현

.....
.....


createFolder('my_test_model')
modelSaver.save(sess, 'my_test_model/mymodel', write_meta_graph = False, global_step=global_step)

 

 

 

2. 불러다 쓰기

sess = tf.Session()

# 네트워크 구성
DQNmain = DQNet(sess, input_size, output_size, "DQNMain")

# modelsaver
modelSaver = tf.train.Saver(var_list = tf.global_variables(), allow_empty=False)

# 저장된 checkpoint 있는지 체크..
# 있으면 load.. 없으면 에러
ckpt = tf.train.get_checkpoint_state('my_test_model/')
if ckpt and tf.train.checkpoint_exists(ckpt.model_checkpoint_path):
    modelSaver.restore(sess, ckpt.model_checkpoint_path)
else:
    print("Model data not found...")
    exit()

 

+ Recent posts