คำถามติดแท็ก matlab

MATLAB (MATrix LABoratory) เป็นสภาพแวดล้อมการคำนวณเชิงตัวเลขและภาษาการเขียนโปรแกรมรุ่นที่สี่ ใช้แท็กนี้ด้วยความระมัดระวัง .. ดูข้อความที่ตัดตอนมา

7
การค้นหาช่องสี่เหลี่ยมในรูปภาพ
ฉันต้องการค้นหาสี่เหลี่ยมในรูปภาพโดยใช้ OpenCV (ไม่มีปัญหาใน MATLAB หรืออื่น ๆ โดยทั่วไปสิ่งที่ฉันคาดหวังคือความคิดบางอย่าง) พิจารณาภาพทดสอบด้านล่าง: ฉันต้องการค้นหาสี่เหลี่ยมสีเหล่านั้นในภาพด้านบนอย่างถูกต้อง (ไม่ใช่แถบยาวสีขาว) สิ่งที่ฉันได้ทำ: ฉันใช้วิธีการทั่วไป (ซึ่งมาพร้อมกับตัวอย่าง OpenCV) คือค้นหารูปทรงในระนาบสีทั้งหมดประมาณค่าและตรวจสอบจำนวนองค์ประกอบ = 4 มันทำงานเพื่อขยายบางส่วนที่ตรวจพบไม่กี่สี่เหลี่ยมโดยเฉพาะอย่างยิ่งที่มืด ขั้นตอนต่อไปที่ผมทำก็คือการทำนาย คือข้อตกลงนี้ได้รับการแก้ไข ดังนั้นหากได้รับบางอย่างฉันสามารถทำนายสิ่งที่เหลืออยู่ได้ มันยังทำงานเพื่อขยายเพิ่มเติม แต่ความแม่นยำนั้นแย่มาก แต่ฉันรู้สึกว่าการทำนายไม่ใช่วิธีที่ดีที่นี่และมันก็ไม่ได้ให้คำตอบที่ถูกต้องเสมอไปตามขั้นตอนแรก สิ่งที่ฉันต้องการ : 1) มีวิธีอื่นใดที่ดีกว่าในการตรวจสอบกำลังสองเหล่านี้อย่างแม่นยำมากขึ้น หรือหลายวิธี? จุดหนึ่งที่สำคัญก็คือว่าเวลาไม่ได้เป็นปัญหาที่นี่ อัลกอริทึมอาจช้ามันไม่สำคัญ แต่ความแม่นยำเป็นเกณฑ์สำคัญ บางครั้งภาพอาจเบลอมากขึ้น และหนึ่งในปัญหาสำคัญที่ฉันเผชิญคือสี่เหลี่ยมบางอันมีสีเกือบเหมือนกันกับพื้นหลัง (ตรวจสอบคอลัมน์ 3 คอลัมน์แรกและสี่เหลี่ยมที่สอง) กำลังมองหาแนวคิดขอบคุณล่วงหน้า อัปเดต: ด้านล่างเป็นผลลัพธ์ที่แม่นยำที่สุดที่ฉันได้รับ: แน่นอนภาพผลลัพธ์จะถูกปรับขนาดเล็กน้อย อัปเดต 2: ฉันได้รับคำตอบที่ดีกว่านี้ในคำตอบของฉันด้านล่าง: https://dsp.stackexchange.com/a/7526/818

5
อัลกอริทึมที่ดีที่สุดสำหรับการทำสำเนารูปภาพเอกสารในตัวอย่างนี้คืออะไร?
ฉันกำลังพยายามใช้อัลกอริทึม binarization ต่าง ๆ กับรูปภาพที่แสดง: นี่คือรหัส: clc; clear; x=imread('n2.jpg'); %load original image ตอนนี้เราปรับขนาดภาพเพื่อให้การคำนวณกลายเป็นเรื่องง่ายขึ้นในภายหลังสำหรับเรา size(x); x=imresize(x,[500 800]); figure; imshow(x); title('original image'); z=rgb2hsv(x); %extract the value part of hsv plane v=z(:,:,3); v=imadjust(v); ตอนนี้เราพบว่าค่าเฉลี่ยและส่วนเบี่ยงเบนมาตรฐานที่จำเป็นสำหรับอัลกอริทึม niblack และ% sauvola m = mean(v(:)) s=std(v(:)) k=-.4; value=m+ k*s; temp=v; % การนำ niblack thresholding อัลกอริทึม: for p=1:1:500 for …

2
ข้อดีของการกรองแบบ MATLAB คืออะไร
MATLAB's filtfiltทำการกรองไปข้างหน้า - หลังเช่นตัวกรองกลับสัญญาณกรองอีกครั้งแล้วกลับอีกครั้ง เห็นได้ชัดว่าสิ่งนี้ทำเพื่อลดความล่าช้าเฟส? ข้อดี / ข้อเสียของการใช้ตัวกรองดังกล่าวคืออะไร (ฉันคิดว่ามันจะส่งผลให้ลำดับตัวกรองเพิ่มขึ้นอย่างมีประสิทธิภาพ) มันจะดีกว่าที่จะใช้filtfiltเสมอแทนfilter(เช่นการกรองไปข้างหน้าเท่านั้น)? มีแอปพลิเคชั่นที่จำเป็นต้องใช้และไม่ควรใช้หรือไม่
30 matlab  filters  theory 

4
ฉันจะประมาณค่าสัญญาณ 1D ได้อย่างไร
ฉันมีสัญญาณที่มีความยาวประมาณ 1,000 ตัวอย่าง ฉันต้องการขยายสัญญาณนี้เป็น 5,000 ตัวอย่างซึ่งเก็บตัวอย่างในอัตราเดียวกับต้นฉบับ (เช่นฉันต้องการทำนายว่าสัญญาณจะเป็นอย่างไรถ้าฉันยังคงทดลองต่อไปเป็นระยะเวลานานขึ้น) สัญญาณประกอบด้วยส่วนประกอบหลายรูปแบบที่เพิ่มเข้าด้วยกัน วิธีที่ฉันเข้ามาครั้งแรกคือการใช้ FFT ทั้งหมดและขยายออก แต่นี่ทำให้ความไม่ต่อเนื่องที่แข็งแกร่งมากที่เฟรม 1001 ฉันยังพิจารณาเฉพาะการใช้คลื่นความถี่ใกล้กับยอดเขาและในขณะนี้ ปรับปรุงสัญญาณค่อนข้างดีสำหรับฉันดูเหมือนว่าเฟสจะรับประกันว่าถูกต้อง วิธีที่ดีที่สุดในการขยายสัญญาณนี้คืออะไร? นี่คือรหัส MATLAB บางส่วนที่แสดงวิธีการในอุดมคติของสิ่งที่ฉันต้องการ แน่นอนว่าฉันจะไม่ทราบล่วงหน้าว่ามีองค์ประกอบของซายน์ 3 อย่างแน่นอนไม่ว่าจะเป็นเฟสและความถี่ที่แน่นอน ฉันต้องการตรวจสอบให้แน่ใจว่าฟังก์ชั่นนั้นต่อเนื่องไม่มีการกระโดดเมื่อเราเลื่อนไปที่จุด 501 vals = 1:50; signal = 100+5*sin(vals/3.7+.3)+3*sin(vals/1.3+.1)+2*sin(vals/34.7+.7); % This is the measured signal % Note, the real signal will have noise and not be known exactly. output_vals …
25 matlab  sampling 

3
พวกเขาทำหนังขาวดำแบบเก่าได้อย่างไร?
คำถามนี้อยู่ที่ dsp.SE เนื่องจากฉันสนใจส่วนการประมวลผลสัญญาณเป็นส่วนใหญ่ มีภาพยนตร์อินเดียMughal-e-Azamซึ่งเปิดตัวในปี 2503 ในรูปแบบขาว - ดำซึ่งมีการผลิตซ้ำในสีในปี 2547 พวกเขาแต่ละสีพิกเซลได้อย่างสมบูรณ์แบบอย่างไร พวกเขาใช้เทคนิคอะไรในการระบุตำแหน่งสีในแต่ละพิกเซล ดูภาพหน้าจอจากภาพยนตร์: ฉันมีรูปถ่ายขาวดำ Einstein ซึ่งฉันต้องการทำให้มีสีสัน เป็นไปได้อย่างไรที่จะทำเช่นนั้นโดยไม่ทราบว่าเขาใส่อะไรไว้ตอนนั้นและสีของเสื้อผ้าพื้นหลัง ฯลฯ
22 matlab 

3
การเรียงลำดับส่วน biquad สำหรับตัวกรองคำสั่งซื้อที่สูงขึ้นทำงานอย่างไร
ฉันกำลังพยายามใช้ตัวกรอง IIR อันดับที่ 8 และบันทึกย่อของแอปพลิเคชันและหนังสือทุกเล่มที่ฉันได้อ่านบอกว่ามันเป็นการดีที่สุดที่จะใช้ตัวกรองลำดับที่สองมากกว่านั้นเป็นส่วนที่สอง ฉันใช้tf2sosMATLAB เพื่อรับค่าสัมประสิทธิ์สำหรับส่วนที่สองซึ่งทำให้ฉันมีค่า 6x4 coeffs สำหรับส่วนของคำสั่งที่สอง 4 ตามที่คาดไว้ ก่อนการใช้งานเป็น SOS ตัวกรองลำดับที่ 8 จำเป็นต้องเก็บค่าตัวอย่าง 7 ค่าก่อนหน้า (และค่าเอาต์พุตด้วย) ตอนนี้เมื่อดำเนินการตามลำดับส่วนที่สองโฟลว์ทำงานอย่างไรจากอินพุตไปยังเอาต์พุตฉันต้องเก็บค่าตัวอย่างก่อนหน้านี้เพียง 2 ค่าหรือไม่ หรือผลลัพธ์ของตัวกรองตัวแรกป้อนเช่นเดียวx_inกับตัวกรองที่สองและอื่น ๆ ?
20 filters  filter-design  infinite-impulse-response  biquad  audio  image-processing  distance-metrics  algorithms  interpolation  audio  hardware  performance  sampling  computer-vision  dsp-core  music  frequency-spectrum  matlab  power-spectral-density  filter-design  ica  source-separation  fourier-transform  fourier-transform  sampling  bandpass  audio  algorithms  edge-detection  filters  computer-vision  stereo-vision  filters  finite-impulse-response  infinite-impulse-response  image-processing  blur  impulse-response  state-space  linear-systems  dft  floating-point  software-implementation  oscillator  matched-filter  digital-communications  digital-communications  deconvolution  continuous-signals  discrete-signals  transfer-function  image-processing  computer-vision  3d 

6
วิธีการลบแสงจ้า / ความสว่างที่ถูกตัดออกจากรูปภาพได้อย่างไร
ฉันมีรูป มีวิธีการลบจุดสีขาวสว่างหรือไม่? โปรดช่วยด้วย แก้ไข: หลังจากใช้งานกับ gaussian แล้วแสดงโดยใช้ imagesc รับเอาต์พุตต่อไปนี้ซึ่งแสดงจุดสีแดงสดอย่างชัดเจนฉันจะกำจัดพวกมันได้อย่างไร ช่องสีแดง: ช่องสีเขียว: ช่องสีฟ้า: แก้ไข 2: การตรวจจับข้อบกพร่องโดยใช้ตัวกรอง Gabor ฮิสโตแกรมของมัน: วิธีการคำนวณขีด จำกัด ที่เหมาะสมปรับตัวอย่างไร

3
ช่วยให้เข้าใจการแปลง Hough
ฉันกำลังพยายามให้ Hough เปลี่ยนไปทำงานใน MATLAB แต่ฉันมีปัญหา ฉันมีวิธีที่ไม่ดีในการตรวจหาจุดสูงสุดที่ต้องแก้ไข แต่ก่อนหน้านั้นฉันต้องสามารถย้อนกลับการแปลง Hough เพื่อสร้างเส้นอีกครั้งอย่างถูกต้อง นี่คือประเภทของสิ่งที่ฉันได้รับตอนนี้: ดูเหมือนว่ามันจะหมุนไป 90 องศา แต่ฉันไม่แน่ใจว่าทำไม ฉันไม่แน่ใจว่ามันเป็นพื้นที่ Hough ของฉันมันผิดหรือถ้ามันเป็นวิธีที่ฉัน de-Hough และวาดเส้น บางคนสามารถช่วยปรับปรุงการตรวจจับสูงสุดของฉันด้วย ภาพที่ใช้ในรหัสอยู่ที่นี่ %% load a sample image; convert to grayscale; convert to binary %create 'x' image (works well) a = eye(255); b = flipud(eye(255)); x = a + b; x(128,128) = …

2
การปรับขนาดภาพมีผลต่อเมทริกซ์กล้องภายในอย่างไร
ฉันมีเมทริกซ์กล้อง (ฉันรู้ว่าพารามิเตอร์ทั้งภายในและภายนอก) เป็นที่รู้จักสำหรับภาพขนาด HxW (ฉันใช้เมทริกซ์นี้สำหรับการคำนวณบางอย่างที่ฉันต้องการ) ฉันต้องการใช้ภาพที่เล็กลงพูดว่า: (ครึ่งหนึ่งของต้นฉบับ) ฉันต้องทำการเปลี่ยนแปลงอะไรกับเมทริกซ์เพื่อรักษาความสัมพันธ์เดิมH2× W2H2×W2\frac{H}{2}\times \frac{W}{2} ฉันมีเป็นพารามิเตอร์ที่แท้จริง ( การหมุนR , Tและการแปล)KKKRRRTTT ลูกเบี้ยว= K⋅ [ R T]ลูกเบี้ยว=K⋅[RT]\text{cam} = K \cdot [R T] K= ⎛⎝⎜ax000aY0ยู0โวลต์01⎞⎠⎟K=(ax0ยู00aYโวลต์0001)K = \left( \begin{array}&a_x &0 &u_0\\0 &a_y &v_0 \\ 0 &0 &1\end{array} \right) คือ 3 * 3 ฉันคิดว่าการคูณ a x , a , y …

2
การตรวจจับวงกลมในข้อมูลภาพที่มีเสียงดัง
ฉันมีภาพที่ดูเหมือนด้านล่าง: ฉันพยายามหารัศมี (หรือเส้นผ่าศูนย์กลาง) ของวงกลม ฉันได้ลองใช้การแปลงแบบ Hough แบบวงกลม (ผ่านทาง matlab's imfindcircles(bw,[rmin rmax],'ObjectPolarity','bright')) และโดยการปรับให้เหมาะกับรูปวงกลมหรือวงรี (ฟังก์ชั่นโฮมเมดที่ทำงานได้ดีสำหรับข้อมูลที่มีเสียงรบกวนน้อยดูด้านล่าง) ฉันได้ลองประมวลผลภาพเพื่อให้ได้วงกลมที่ชัดเจนขึ้นเช่นดูด้านล่าง: se = strel('disk', 2); bw = imdilate(bw, se); bw = bwareaopen(bw,100000); bw = edge(bw); อย่างไรก็ตามเมื่อฉันป้อนรูปภาพที่ถูกประมวลผลไปยังเทคนิคใด ๆ (การปรับ Hough และ circle \ ellipse) ทั้งคู่ไม่สามารถตรวจจับวงกลมในลักษณะที่เหมาะสมได้ นี่คือข้อมูลโค้ดของตัวค้นหาวงกลมที่ฉันเขียน (matlab) [row col] = find (bw); contour = bwtraceboundary (bw, แถว (1), …

5
สิ่งที่ทำให้ราบเรียบในแง่พื้นฐานมาก
อะไรที่ทำให้เรียบและฉันจะทำอย่างไร ฉันมีอาร์เรย์ใน Matlab ซึ่งเป็นสเปกตรัมขนาดของสัญญาณเสียงพูด (ขนาด 128 คะแนนของ FFT) ฉันจะทำให้สิ่งนี้ราบรื่นโดยใช้ค่าเฉลี่ยเคลื่อนที่ได้อย่างไร จากสิ่งที่ฉันเข้าใจฉันควรใช้ขนาดหน้าต่างขององค์ประกอบจำนวนหนึ่งรับค่าเฉลี่ยและนี่จะกลายเป็นองค์ประกอบที่ 1 ใหม่ จากนั้นเลื่อนหน้าต่างไปทางขวาทีละองค์ประกอบรับค่าเฉลี่ยซึ่งกลายเป็นองค์ประกอบที่ 2 และอื่น ๆ มันใช้งานได้จริงเหรอ? ฉันไม่แน่ใจว่าตัวเองเพราะถ้าฉันทำอย่างนั้นในผลลัพธ์สุดท้ายของฉันฉันจะมีองค์ประกอบน้อยกว่า 128 แล้วมันทำงานอย่างไรและมันช่วยให้จุดข้อมูลเรียบขึ้นได้อย่างไร หรือมีวิธีอื่นใดที่ฉันสามารถทำให้ข้อมูลเรียบขึ้นได้? แก้ไข: ลิงก์ไปยังคำถามติดตามผล

6
วิธีสร้างสัญญาณรบกวนแบบเกาส์เซียนใน MATLAB ได้อย่างไร
ในเอกสารบางเล่มฉันได้อ่านว่าเสียงรบกวนเพิ่มเติมนั้น จำกัด อยู่ที่สีขาวแบบเกาส์เซียน ฉันจะจำลองเสียงประเภทนี้ใช้ MATLAB ได้อย่างไร
16 matlab  noise  gaussian 

3
ตัวกรอง Gabor สามารถใช้สำหรับตรวจจับรอยบุบในรถยนต์ได้หรือไม่?
ฉันกำลังทำการวิจัยเกี่ยวกับตัวกรอง Gabor เพื่อตรวจจับรอยบุบในรถยนต์ ฉันรู้ว่าตัวกรอง Gabor มีการใช้อย่างกว้างขวางสำหรับการจดจำรูปแบบการจดจำลายนิ้วมือ ฯลฯ ฉันมีรูป ใช้รหัสจากเว็บไซต์ MathWorks File Exchange ฉันได้ผลลัพธ์ต่อไปนี้ ซึ่งอย่างใดไม่ใช่เอาท์พุทที่เราคาดหวัง นี่ไม่ใช่ผลลัพธ์ที่ดี สคริปต์ของฉันเป็นดังนี้: I = imread('dent.jpg'); I = rgb2gray(I); [G, gabout] = gaborfilter1(I, 2, 4, 16, pi/2); figure imshow(uint8(gabout)); แก้ไข: การใช้รหัสที่แตกต่างกับภาพต่อไปนี้: ภาพที่ส่งออกหลังจากทิศทางที่แตกต่างกันของตัวกรอง gabor: ฉันจะแยก DENT นี้ซึ่งตรวจพบได้อย่างถูกต้องได้อย่างไร

2
ฉันจะพล็อตการตอบสนองความถี่ด้วยตนเองของตัวกรองบัตเตอร์เวิร์ ธ บัตเตอร์เวิร์ ธ ใน MATLAB โดยไม่มีฟังก์ชัน freqz ได้อย่างไร
ฉันมีรหัสเช่นด้านล่างที่ใช้ตัวกรอง bandpass กับสัญญาณ ฉันเป็น noob ที่ DSP และฉันต้องการที่จะเข้าใจสิ่งที่เกิดขึ้นเบื้องหลังก่อนที่ฉันจะดำเนินการต่อ freqzการทำเช่นนี้ผมต้องการที่จะทราบวิธีการพล็อตการตอบสนองความถี่ของตัวกรองโดยไม่ต้องใช้ [b, a] = butter(order, [flo fhi]); filtered_signal = filter(b, a, unfiltered_signal) ให้ผลลัพธ์ที่[b, a]ฉันจะทำอย่างไร ดูเหมือนว่ามันจะเป็นงานง่าย ๆ แต่ฉันมีเวลาหาสิ่งที่ฉันต้องการในเอกสารหรือออนไลน์ ฉันต้องการที่จะเข้าใจวิธีการทำเช่นนี้โดยเร็วที่สุดเช่นใช้fftอัลกอริทึมเร็วหรืออื่น ๆ

3
การออกแบบตัวกรอง Butterworth ใน Matlab และการรับสัมประสิทธิ์ตัวกรอง [ab] สัมประสิทธิ์เป็นจำนวนเต็มสำหรับเครื่องสร้างรหัส Verilog HDL ออนไลน์
ฉันได้ออกแบบตัวกรอง Butterworth โลว์พาสง่าย ๆ โดยใช้ Matlab ข้อมูลโค้ดต่อไปนี้แสดงให้เห็นถึงสิ่งที่ฉันได้ทำไปแล้ว fs = 2.1e6; flow = 44 * 1000; fNorm = flow / (fs / 2); [b,a] = butter(10, fNorm, 'low'); ใน [b, a] ถูกจัดเก็บค่าสัมประสิทธิ์ตัวกรอง ฉันต้องการได้รับ [b, a] เป็นจำนวนเต็มเพื่อให้ฉันสามารถใช้เครื่องสร้างรหัสHDL ออนไลน์เพื่อสร้างรหัสใน Verilog ค่า Matlab [b, a] ดูเหมือนจะเล็กเกินไปที่จะใช้กับเครื่องสร้างรหัสออนไลน์ (สคริปต์ Perl ฝั่งเซิร์ฟเวอร์ปฏิเสธที่จะสร้างรหัสด้วยค่าสัมประสิทธิ์) และฉันสงสัยว่ามันจะเป็นไปได้ที่จะได้รับ [b, a] ในรูปแบบที่สามารถใช้เป็นอินพุตที่เหมาะสม สัมประสิทธิ์ที่ฉันได้รับใน …
15 matlab 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.