|
@@ -241,6 +241,18 @@ namespace ImgAssist
|
|
|
return TRUE;
|
|
|
}
|
|
|
|
|
|
+ cv::Mat OpenImage(std::string strImage)
|
|
|
+ {
|
|
|
+ if (!PathFileExists(strImage.c_str()))
|
|
|
+ return cv::Mat();
|
|
|
+
|
|
|
+ cv::Mat img = cv::imread(strImage.c_str(), cv::IMREAD_COLOR);
|
|
|
+ if (img.data == NULL)
|
|
|
+ return cv::Mat();
|
|
|
+
|
|
|
+ return cv::Mat();
|
|
|
+ }
|
|
|
+
|
|
|
BOOL SetImgThreshold(cv::Mat& srcImg, cv::Mat& thresholdImg, long nThresholdVal, long nMaxThresholdVal, int type)
|
|
|
{
|
|
|
if (srcImg.data == NULL)
|
|
@@ -290,9 +302,8 @@ namespace ImgAssist
|
|
|
|
|
|
BOOL GetImgMatchtemplate(HWND hWnd, std::string strTempImg, RECT& rc, double lowestMatchValue)
|
|
|
{
|
|
|
- std::string strImage = CaptureGameWnd(hWnd);
|
|
|
- cv::Mat srcImg, tempImg, matchImg;
|
|
|
- if (!OpenImage(strImage, srcImg) || !OpenImage(strTempImg, tempImg))
|
|
|
+ cv::Mat srcImg = CaptureWnd(hWnd), tempImg, matchImg;
|
|
|
+ if (srcImg.empty() || !OpenImage(strTempImg, tempImg))
|
|
|
{
|
|
|
if (srcImg.data) srcImg.release();
|
|
|
if (tempImg.data) tempImg.release();
|
|
@@ -369,9 +380,8 @@ namespace ImgAssist
|
|
|
|
|
|
BOOL IsMatchIcon(HWND hWnd, std::string strTempImg, RECT srcRect, RECT& matchRect, double lowestMatchValue)
|
|
|
{
|
|
|
- std::string strImg = CaptureGameWnd(hWnd);
|
|
|
- cv::Mat srcImg, tempImg, matchImg;
|
|
|
- if (!OpenImage(strImg, srcImg) || !OpenImage(strTempImg, tempImg))
|
|
|
+ cv::Mat srcImg = CaptureWnd(hWnd), tempImg, matchImg;
|
|
|
+ if (srcImg.empty() || !OpenImage(strTempImg, tempImg))
|
|
|
{
|
|
|
if (srcImg.data) srcImg.release();
|
|
|
if (tempImg.data) tempImg.release();
|
|
@@ -421,9 +431,8 @@ namespace ImgAssist
|
|
|
|
|
|
BOOL CropPicture(HWND hWnd, CRect rc, const char* szSaveName)
|
|
|
{
|
|
|
- std::string strImg = CaptureGameWnd(hWnd);
|
|
|
- cv::Mat srcImg, tempImg, matchImg;
|
|
|
- if (!OpenImage(strImg, srcImg))
|
|
|
+ cv::Mat srcImg = CaptureWnd(hWnd), tempImg, matchImg;
|
|
|
+ if (srcImg.empty())
|
|
|
{
|
|
|
if (srcImg.data) srcImg.release();
|
|
|
return FALSE;
|
|
@@ -435,6 +444,20 @@ namespace ImgAssist
|
|
|
return cv::imwrite(szSaveName, imgROI);
|
|
|
}
|
|
|
|
|
|
+ cv::Mat CropPicture(HWND hWnd, CRect rc)
|
|
|
+ {
|
|
|
+ cv::Mat srcImg = CaptureWnd(hWnd), tempImg, matchImg;
|
|
|
+ if (srcImg.empty())
|
|
|
+ {
|
|
|
+ if (srcImg.data) srcImg.release();
|
|
|
+ return cv::Mat();
|
|
|
+ }
|
|
|
+
|
|
|
+ // 指定源图片区域来做模块比较,提高效率;
|
|
|
+ cv::Mat imgROI;
|
|
|
+ return srcImg(cv::Rect(rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top));
|
|
|
+ }
|
|
|
+
|
|
|
BOOL IsSimilarPicture(const char* szp1, const char* szp2, double lowestMatchValue)
|
|
|
{
|
|
|
cv::Mat src, dest, matchImg;
|