簡體   English   中英

MATLAB:如何將一個圖像轉換為另一個圖像

[英]MATLAB: how to transform one image to another image

我正在嘗試在MATLAB中將一張圖片轉換為另一張圖片,與此同時,還要從此操作中獲得轉換函數T(x,y) (例如T(x,y) = (x + a(x,y), y + b(x,y)) )。 我們以下面的圖為例。 我想將第一個圖形中的正方形轉換為另一個圖形中的圓形,並且輸出給了我一個轉換函數,因此,每當我在正方形上使用函數時,我都會得到圓。

在此輸入圖像描述

在此輸入圖像描述

我研究過的功能:

我已經研究過imwarp ,但它應該僅用於幾何變換(縮放,旋轉,剪切)。 我不認為這在將正方形轉換為圓形時是有用的,而不是事先提供任何變換矩陣。

我已經研究過使用來自MATLAB 示例的 imregconfigimregister ,但它似乎只適用於具有相同結構但強度不同的圖像。 另外,它不提供任何轉換功能。 如果我錯了,請糾正我。

預先感謝您的任何幫助!

有效轉換的解決方案空間是無限的。 我們如何選擇“正確”的?

對於這些輸入的一個可能的變換是將方形翻譯-0.5x-0.5y 然后將其縮放為兩倍大小( x' = 2xy' = 2y )並應用平方到圓映射函數 (解決方案1)

另一個完全有效的轉換函數可以通過表達式運行輸入中的所有點

( (x == 0 || x == 1) && (0 <= y <= 1) || ( (y == 0 || y == 1) && (0 <= x <= 1) )

如果所有點都通過,只需打印出"x^2 + y^2 = 1" (解決方案2)

解決方案(1)和(2)都生成的代碼似乎可以滿足您所介紹的情況,但是顯然(2)太泛泛而無用。 我認為在我們開始在代碼中編寫解決方案之前,您需要更准確地定義問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM