2012-05-19 32 views
1

任何人都知道我可以如何實現這一點?我想要的功能基本上像matlab中的impoly或imageJ中的「多邊形部分」工具,點擊形成多邊形部分,然後可以調整每個節點等。我還想訪問來自Qt的這個函數,因爲我試圖爲我寫的一個小程序做一個gui。在Qt中使用鼠標設置多邊形投資回報率

另外,我想避免調用matlab函數,因爲它是圖像處理工具箱的一部分,它不是免費的。謝謝。

回答

2

我想你需要自己編碼。 C++ GUI Programming with Qt 4書中有一個很好的例子(有一個PDF副本在網上流傳;我認爲它是合法的),在那裏他們告訴你如何創建一個包含節點和鏈接的圖。本章被稱爲「基於項目的圖形視圖渲染」。

的基本想法是,你有一些可拖動的節點,這是QGraphicsItemsItemIsMovable標誌設置爲true,然後一些鏈接,將它們連接起來,這是QGraphicsLineItems。所有這些將進入代表ROI的複合QGraphicsItem,並且所有這些將進入QGraphicsScene,這將由QGraphicsView顯示。

底線:沒有MATLAB函數的內置副本,但所有工具都在那裏。

+0

感謝您的迴應。我找到了你提到的那本書。我會稍後嘗試更深入地閱讀它。現在我會將你的回答標記爲答案。 – Justin

1

我認爲最好的實現方式是使用Qt Graphics View框架。使用在後面顯示圖像的項目創建場景,並在頂部添加表示多邊形拐角的可拖動項目。

您的選擇工具可能應該是QGraphicsObject的子類,該子類將託管多邊形拐角作爲子項,並且在用戶重新調整選擇時更新拐角下面的QGraphicsPolygonItem。由於QGraphicsObject繼承QObject,只要選擇發生變化,就可以發出帶有QPolygonF或QPolygon參數的信號,通知應用程序的其他部分。

此演示應該是您需要的拐角調整功能的一個很好的示例。

Qt Pathstroke Demo

(呃好,例如實現了從無到有的控制點的繪製和拖動。我敢肯定,你可以通過使用QGraphicsEllipseItem代替做到這一點,在他們的位置變化作出反應)

+0

看起來很有希望。我會進一步研究它。謝謝 – Justin

相關問題