a=b我正在嘗試在匯入的影像上畫一個圓和一條直線。情節出現了,但我遇到了兩個問題:
- 影像未居中 - 在這里,圓圈應該位于影像的中心
- 該線出現倒斜率

clear;close all;
I0 = imread('temp.png');
I1 = im2double(I0);
I = imresize(I1,[320 320]);
a=0:1:320;
b = a;
r=320/2;
xc=0; yc=0;
th = linspace( 0, 2*pi, 100);
x = r * cos(th) xc;
y = r * sin(th) yc;
figure,imshow(I)
hold on
plot(b,a,'linewidth',3)
hold on
plot(x,y,'white','linewidth',3)
我可以通過繪圖來修復線條的斜率,(b,-a,'linewidth',3)但線條不會在影像上繪制。
任何幫助將非常感激。是的,這是一個作業,但它根本不是最終答案:)
uj5u.com熱心網友回復:
點 (0,0) 不是影像的中心。由于您使用 顯示影像
I,imshow因此軸的大小為I,在您的情況下為0到320。因此,您需要根據此選擇圓心。%1請參閱下面代碼中帶有注釋的修改行。imshow設定軸ij模式,用于影像,它反轉垂直軸。要正常繪制線條,您可以設定xy模式。%2請參閱代碼中帶有注釋的添加行。
clear;close all;
I0 = imread('temp.png');
I1 = im2double(I0);
I = imresize(I1,[320 420]);
a=0:1:320;
b = a;
r=320/2;
xc = size(I, 2)/2; yc = size(I, 1)/2; %1
th = linspace( 0, 2*pi, 100);
x = r * cos(th) xc;
y = r * sin(th) yc;
figure,imshow(I)
hold on
axis xy %2
plot(b,a,'r','linewidth',3)
hold on
plot(x,y,'white','linewidth',3)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/463071.html
上一篇:如何在Node.js中撰寫具有與內置ArrayJoin相同行為的自定義函式
下一篇:影像比較不適用于相機捕獲的影像
