1. 程式人生 > >OpenCV的Image Watch外掛安裝與使用

OpenCV的Image Watch外掛安裝與使用

OpenCVImage Watch外掛安裝與使用

說來慚愧,一直覺得OpenCV在除錯方面不如MATLAB靈活方便,沒成想早OpenCV官方早就推出了一個叫Image Watch的外掛可用於除錯時顯示和監檢視像變量了。這裡簡單記錄一下外掛的下載安裝與基本使用方法,供大家參考。本文示例使用的環境為:Windows10系統+vs2015+OpenCV3.4。

Image Watch是Microsoft Visual Studio的一個外掛,它允許我們在除錯應用程式時視覺化記憶體中的影象(例如,cv :: Mat或IplImage_物件)。 這有助於跟蹤錯誤,或者幫助我們瞭解特定的程式碼片段正在做什麼(例如本文的示例程式碼中進行的變換)。

本文的主要內容:

  • Image Watch外掛安裝需求
  • 外掛下載和安裝方法
  • 外掛的使用方法
  • 示例程式碼

安裝該外掛需要如下條件

  •      安裝了Update 1的Visual Studio 2012 Professional(或更高版本)。 可以在此處下載更新1。
  •      在Windows機器上完成了OpenCV的安裝(教程:在Windows中安裝)。
  •      能夠在Visual Studio中建立和構建OpenCV專案。

下載安裝Image Watch

雙擊下載的ImageWatch.vsix檔案,即可完成安裝。

使用Image Watch

Image Watch適用於任何使用OpenCV影象物件的現有專案(例如,cv::Mat)。 下面給出一個簡單的示例,載入一幅彩色影象,並將其轉換為反色。 所使用的開發環境為Windows10,Visual Studio 2015。首先建立一個控制檯應用程式專案,然後在下面插入原始碼。別忘了將目標平臺改為debug x64。

#include "stdafx.h"
#include "opencv.hpp"

using namespace cv;
int main()
{
	cv::Mat src, dst;
	src = cv::imread("E:/images/Lena.jpg");
	dst = src.clone();// 淺拷貝,共享資料區域,修改src2同時改變src1
	// 遍歷畫素
	for (int col = 0; col < width; col++)
	{
		for (int row = 0; row < height; row++)
		{
			Vec3b bgr = src.at<Vec3b>(row, col);
			bgr[0] = 255 - bgr[0];
			bgr[1] = 255 - bgr[1];
			bgr[2] = 255 - bgr[2];
			dst.at<Vec3b>(row, col) = bgr;
		}
	}

	imshow("src",src);
	imshow("-src", dst);
	cv::waitKey();
    return 0;

}

確保使用的是debug模式,並且在適當的位置設定的斷點,在本例中在第二個for迴圈的位置以及第一個imshow的位置分別設定斷點。除錯執行至斷點時即可啟用image watch外掛。如果沒有顯示Image Watch視窗,可以使用如下方法呼叫:選單欄->檢視->其他視窗->image watch,調出該外掛。

請注意,vs IDE內建的“本地”視窗將僅顯示文字。 而Image Watch外掛就像是另一個Locals視窗,但內建了一個影象檢視器。與Visual Studio的Locals視窗一樣,Image Watch可以停靠到Visual Studio IDE。 此外,Visual Studio將記住我們是否打開了Image Watch,以及它在除錯會話之間的位置。 也就是說只需執行此操作,下次開始除錯時,Image Watch將返回之前我們離開的位置。 上圖就是停靠的Image Watch視窗在斷點處的樣子。

Image Watch視窗左上角的單選按鈕(Locals / Watch)選擇下面的影象列表中顯示的內容:Locals列出當前作用域中的所有OpenCV影象物件(此列表自動填充)。 Watch顯示已固定用於連續檢查的影象表示式。 影象列表顯示基本資訊,例如寬度,高度,通道數,以及縮圖(如果有)。 在我們的示例中,影象列表包含兩個本地影象變數,輸入和邊。

如果影象具有縮圖,則左鍵單擊該影象將在右側的影象檢視器中選擇它以進行詳細檢視。 檢視器允許平移(拖動滑鼠)和縮放(滑鼠滾輪)。 它還可以顯示當前滑鼠位置的畫素座標和色彩分量值,如下圖所示。

在影象上使用滾輪操作實現縮放,放大到一定尺寸後將同時顯示畫素的BGR分量,如上圖所示。

附加功能的使用

影象監視外掛在list欄某影象上單擊右鍵彈出選單,如下圖所示。選單項是:

右鍵選單各項功能說明:

  • Expand All/Collapse All: 展開/全部摺疊,展開/摺疊當前列表中的所有專案
  • Expand New Items: 展開新專案,控制是否最初展開或摺疊新列表專案
  • Large Thumbnails: 大縮圖,在兩個縮圖大小之間切換
  • Auto Maximize Contrast: 自動最大化對比度,如果未選中,則使用標準顏色對映規則將畫素值對映到顯示顏色。如果選中,則當前畫素資料的值範圍將對映到整個顯示顏色範圍(如Matlab的imagesc)。注意:此設定適用於所有影象。
  • 1-Channel Pseudo Color: 1通道偽彩色,如果未選中,則單通道影象顯示為灰度。如果選中,則使用偽彩色圖(如Matlab的colormap jet)。注意:此設定適用於所有影象。
  • 4-Channel Ignore Alpha: 4通道忽略Alpha,如果未選中,則四通道影象中的最後一個通道被解釋為alpha。如果選中,則忽略最後一個通道。
  • Add to Watch: 新增到監視,將所選專案新增到監視列表
  • Add Address to Watch: 新增要監視的地址,將所選項的地址新增到監視列表。這對於在不同堆疊幀上觀看影象很有用。
  • Dump to File: 轉儲到檔案,將所選影象轉儲到檔案。支援的格式為PNG,JPG和BIN(Image Watch內部無損檔案格式)。BIN檔案僅適用於Image Watch;可以使用@file運算子將它們載入到監視列表中。

新增監視後可以逐步檢視監視物件的變化。

更多幫助可以直接點選外掛視窗中的help按鈕開啟幫助文件。

本文連結:

轉載請註明出處。