2016-05-31 49 views
-2

我是圖像處理新手,請原諒我的無知。我試圖想出一種方法來獲取其中包含較大圖像的子圖像的座標。例如,我有一個New York skyline的大圖像和一個Empire State building。大圖像始終是高質量圖像,小圖像是由用戶的相機掃描大圖像的打印版本提供的。在那裏,較小圖像的質量,尺度和顏色將不能與較大圖像的完美匹配。我想要得到的是從較大圖像的左上角到較小圖像的左上角的X,Y座標,就像較小圖像是放置在較大圖像中的拼圖一樣。如果有人能指出我正確的方向,那將是非常值得讚賞的。謝謝C#如何在較大圖像內獲取較小圖像的位置

編輯 謝謝您的反饋意見。我已經意識到這可能是一項非常艱鉅的任務。我結束了採取不同的方法。我將在上述打印介質中嵌入可識別的形狀,並使用OpenCvSharp(OpenCV周圍的免費C#包裝)來檢測它們。

回答

0

,只是給你一個可能的方向,

什麼你可能會面臨着這裏是模式檢測和/或識別(又名機器學習),我建議找準備實現的味道,因爲這是複雜的任務。

其基本思想是你訓練或教授一個關於感興趣對象特徵的算法,然後該算法在圖像中搜索與你的模式相匹配的任何東西。

這裏有很多算法;每個人都有自己的方法。作爲一個起點,你可以嘗試看看衆所周知的圖像處理框架可以提供 - OpenCV的:

http://docs.opencv.org/2.4/doc/tutorials/features2d/feature_homography/feature_homography.html

編輯:爲.NET C# OpenCV的包裝爲OpenCV的是C++項目

http://www.emgu.com/wiki/index.php/Main_Page

+0

謝謝您的回覆。我將其標記爲解決方案,因爲它指向了正確的方向。我最終使用OpenCvSharp而不是Emgu,因爲它是免費的。 – Sturnus

0

這是一個非常艱鉅的大項目。

順便說一句,你可以通過GetPixel()方法獲得像素的顏色。

以下代碼會創建一個200x200的圖像並獲得該圖像100,100協調的顏色。

Bitmap bmp = new Bitmap(200,200); 
Color c = bmp.GetPixel(100,100); 

爲了有效地瀏覽圖片,必須使用指針(不安全代碼)而不是GetPixel()方法,除非性能太慢。

相關問題