1. 程式人生 > >如何利用程式碼標註 MATLAB 影象上的某些點

如何利用程式碼標註 MATLAB 影象上的某些點

在 MATLAB 作圖時,可利用 Data Cursor 標註曲線上的點。但是,該方式很難用程式碼實現。在某些情況下(如利用 MATLAB 自帶的 Publish 做筆記),需要用程式碼標註圖中的某些點。這時可以利用本文所提的方法。該方法雖比較粗放,但用於做筆記已足夠。

利用Data Cursor標註

簡答來說,本文方法是利用 textarrow 來實現的。下面給了一個具體例子。

一、確定箭頭的位置

在 MATLAB 中,可以利用 annotation 並配合 textarrow 來標註某個點。 該方式需要箭頭的位置。但是,計算箭頭的位置比較困難。因此,可手動標註箭頭來獲取箭頭的大致位置。

1、可在想標註的位置新增 Cursor 來標註該點,為手動新增箭頭提供參考點。

2、手動標註箭頭

圖2-手動標註箭頭

標註完畢後的結果如下圖所示。
圖3-手動標註箭頭完畢

3、檢視箭頭位置
生成程式碼,檢視箭頭位置。

圖4-檢視箭頭位置

具體箭頭位置如下圖所示。若圖中的四個數字分別為[x1 x2],[y1 y2],則表示箭頭從 (x1,y1) 指向 (x2,y2).

圖5-程式碼中的箭頭位置

二、利用獲取的位置畫箭頭

close all;
x = 0:0.01:2*pi;
y = sin(x);
figure(2);
plot(x,y);
index = find ( x == 2.66); %獲取x為2.66時的位置,為獲取對應的y值做準備
annotation('textarrow',[0.496428571428571 0.435714285714286],...
[0.784714285714286 0.714285714285714],'String',['x = ',num2str(x(index)),',y = ',num2str(y(index))]);

上述程式碼得到的圖形如下。

圖6-程式碼標註箭頭

三、細調箭頭的位置

從上圖看到,箭頭離 y=sin(x) 曲線有一定的距離。可細調箭頭的位置使指示的點更加準確。將上述程式碼中的最後一句修改為

annotation('textarrow',[0.49 0.425],...
[0.78 0.705],'String',['x = ',num2str(x(index)),',y = ',num2str(y(index))]);

得到的圖形如下:

圖7-細調箭頭位置

注意:上圖中的 cursor 是通過手工加上去的。可以看到,經過簡單調節後的箭頭位置準確指向了我們想要的點。

結論

該方式可較為快捷地通過程式碼來標註 MATLAB 曲線中某些點的值。

相關推薦

如何利用程式碼標註 MATLAB 影象某些

在 MATLAB 作圖時,可利用 Data Cursor 標註曲線上的點。但是,該方式很難用程式碼實現。在某些情況下(如利用 MATLAB 自帶的 Publish 做筆記),需要用程式碼標註圖中的某些點。這時可以利用本文所提的方法。該方法雖比較粗放,但用於做筆記

關於頁面某些選事件無效的問題

今天在客戶那遇到一個比較罕見的問題。 【問題描述】 使用者是英文版2k3作業系統,IE9,頁面上部分點選事件無效。 我的點選事件是在js中生成html元素時寫在onclick屬性裡的,程式碼如下: for(var i = 0; i < t; i++){

MATLAB 標註 影象擷取Rect區域影象

Matlab裡面根據滑鼠的響應,擷取rect區域影象,並且儲存影象。 程式碼非常簡單,裡面沒有做越界判斷。 clc; clear; % label and rect Forder = [pwd '\images\']; files = dir([Forder,'*.png

System Generator從入門到放棄(四)-利用MCode呼叫MATLAB程式碼

System Generator從入門到放棄(四)-利用MCode呼叫MATLAB程式碼 文章目錄 System Generator從入門到放棄(四)-利用MCode呼叫MATLAB程式碼 一、利用MCode呼叫MATLAB程式碼 1、簡介

利用形狀匹配進行定位,然後提取影象特定的線段

*********************************************************************** * * 檔名稱: Matching Demo * 摘 要: 利用

Matlab&Mathematica】對三維空間進行橢圓擬合

問題是這樣:比如有一個地心慣性系的軌道,然後從軌道上取了幾個點,問能不能根據這幾個點把軌道還原了? 當然,如果知道軌道這幾個點的速度的情況下,根據軌道六根數也是能計算軌道的,不過真近點角是隨時間變動的。 下面我會用數學的方法來解這個問題,基本思想是通過擬合空間上點的平面與橢球平面的交線將該軌道計算出來,算

ArcGIS API for Silverlight開發中滑鼠左鍵選地圖彈出視窗及右鍵選彈出快捷選單的實現程式碼

1、首先在SL專案中新增一個抽象類ContextMenu.cs檔案,程式碼如下:using System; using System.Net; using System.Windows; using System.Windows.Controls; using System.

MATLAB影象處理_直接操作畫素進行顏色變換

需求 直接操作RGB影象的畫素點,進行顏色的相關操作。            掌握這個,必須對MATLAB中矩陣的操作有所熟悉,特別是整行、整列的操作。      如:            J =

ROS利用usb_cam讀取攝像頭影象

電腦需要有USB3.0的介面 我使用的環境為:Ubuntu16.04LTS ROS版本是kinetic 一、usb_cam驅動的安裝 1、建立ROS工作空間 mk

Matlab影象處理學習筆記(七):surf特徵

本文主要演示如何使用matlab自帶的Computer Vision System Toolbox這個工具箱進行suft特徵點的檢測、匹配及顯示。這個工具箱是matlab2012b及之後才有的一個工具

MATLAB標人臉特徵程式碼

function [] = Make1Lndmk( )     Fname='04000_lights_27_01.ppm';     PoseID='27';     TOLNUM=24; % The number of landmarks          cd(['/

matlab影象特徵提取--邊緣,角,SURF檢測

1.影象的邊緣檢測. 影象的邊緣是指周圍畫素灰度急劇變化的那些畫素的集合,它是影象最基本的特徵.邊緣存在於目標,背景和區域之間,所以,它是影象分割所依賴的最重要依據.由於邊緣是位置的標誌,對灰度的變化不

opencv中對影象畫素訪問的三種方法利用程式進行解讀

程式碼放到自己的工程中,執行就可以的 #include <opencv2\opencv.hpp> #include <opencv2\core\core.hpp> #include <opencv2\highgui\highgui.hpp> #includ

matlab 關於利用深度學習進行影象識別

深度學習進行影象識別現在主要 是利用CNN來進行操作,其中影象預處理涉及到灰度處理,零均值,影象分割,影象增強等等,比較多。最近在用matlab進行影象識別這一方面的實驗,在matlab官網上出了很多這樣的例子,提出裡兩種方法:training from scratch和tr

mui拉載入會影響頁面中的某些選事件

專案是vue寫的(移動端) <div class="mui-scroll">   <a :href="bannerinfo.activity_url" class="icon play">     連結點選沒反應(點元素的最左邊才會跳轉)   </a>   <

mui拉加載會影響頁面中的某些擊事件

star 禁止 鏈接 行為 點擊沒反應 href icon 默認 影響 項目是vue寫的(移動端) <div class="mui-scroll">   <a :href="bannerinfo.activity_url" class="icon play

利用opencv逼近二值影象的邊界,並過濾不需要的邊界,達到尋邊效果。(轉載請說明出處)

二值化影象; 利用黑白畫素值求差,得到邊緣點; 過濾邊緣點找到合適區域; 利用cvFitLine2D擬合線。 做的比較粗糙,搜尋時間在10ms左右,希望有研究opencv的朋友斧正。 效果預覽: 、 void CvProcess::FindLine( Ip

OpenCV數字影象處理十一:利用分段線性化處理影象某些情況效果很實用

分段線性變換 分段線性變換也叫做灰度線性拉伸,常用的是分三段分線性變換。如下圖: 圖中對灰度區間[a,b]進行了擴充套件,而灰度區間[0, a]和[b, Mf]收到了壓縮。通過細心調整折線拐點的位置及控制分段直線的斜率,可對任意灰度區間進行擴充套件和壓縮。、本文就是基

WPF利用程式碼觸發按鈕選操作

在WPF開發過程中,某些場景下,需要模擬點選按鈕進行某些操作,也就是用程式碼呼叫某些介面,實現對於按鈕的點選。但是Button控制元件提供的介面中並沒有這樣的方法,它只提供了Click事件。解決辦法如下: ButtonAutomationPeer peer = new

利用MSER演算法提取影象區域(車牌區域)的OpenCV程式碼~

我的部落格中前面已經寫了兩種方法來實現車牌區域的提取了,大家可以參看下面這篇博文: MSER的全稱是maximally stable extremal region,翻譯過來為“最穩定極值區域”,extremal 意思的極值的意思。 下面說下這種方法的大致思路,如果要