Προς το περιεχόμενο

Matlab


mairy87

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα. Προσπαθώ να διαιρέσω το 2ο χρωματικό κανάλι μιας εικόνας σε μπλοκ των 4*4 pixel. Και στη συνέχεια να αντικαταστήσω κάθε μπλοκ με την τιμή της φωτεινότητας του pixel (2,2) του μπλοκ.

 

Αρχικά φορτώνω την εικόνα και προβάλω το δεύτερο χρωματικό κανάλι. Μετά θέλω με τη βοήθεια της blproc να κάνω τα υπόλοιπα. Κάνω help blproc αλλά μου λέει η matlab not found. Ξέρεις κανείς τη σύνθεση της εντολής??

Ευχαριστώ πολύ εκ των προτέρων.

Δημοσ.

Διστυχώς τίποτα...το είχα δοκιμάσει και αυτό, όπβς επίσης και το blkprok και άλλα παρεμφερή. Αυυτό που μου προτείνεις ήταν το πρώτο που δοκίμασα....Εσένα αυτό σου βγάζει αποτελέσματα?

Δημοσ.

είμαι ασχετοσ με επεξεργασία εικόνας, αλλά μηπως εννοείς την blkproc?

 

blkproc

 

Distinct block processing for image

Syntax

 

B = blkproc(A,[m n],fun)

B = blkproc(A,[m n],[mborder nborder],fun)

B = blkproc(A,'indexed',...)

Description

 

B = blkproc(A,[m n],fun) processes the image A by applying the function fun to each distinct m-by-n block of A, padding A with 0's if necessary. fun is a function handle that accepts an m-by-n matrix, x, and returns a matrix, vector, or scalar y.

 

y = fun(x)

 

blkproc does not require that y be the same size as x. However, B is the same size as A only if y is the same size as x.

 

B = blkproc(A,[m n],[mborder nborder],fun) defines an overlapping border around the blocks. blkproc extends the original m-by-n blocks by mborder on the top and bottom, and nborder on the left and right, resulting in blocks of size (m+2*mborder)-by-(n+2*nborder). The blkproc function pads the border with 0's, if necessary, on the edges of A. The function fun should operate on the extended block.

 

The line below processes an image matrix as 4-by-6 blocks, each having a row border of 2 and a column border of 3. Because each 4-by-6 block has this 2-by-3 border, fun actually operates on blocks of size 8-by-12.

 

B = blkproc(A,[4 6],[2 3],fun)

 

B = blkproc(A,'indexed',...) processes A as an indexed image, padding with 0's if the class of A is uint8 or uint16, or 1's if the class of A is double

Δημοσ.

Ναι. Αυτήν ακριβώς εννοώ.

ΜΠορώ νσ χρησιμοποιήσω 1 από τα 3, όποιο θέλω, ή πρέπει και τα 3 μαζί για να είναι ολοκληρωμένο?

Πρέπει να ορίσω και την function?

Δημοσ.

Στο παράδειγμα που ψάχνω(αυτό που αναφέρω στην αρχή) πρέπει να γίνεται:

b=blkproc(a,[4,4],fun);

Μέσα στιην αγγύλη πως πρ'επει να χωρίσω τα τεσσάρια?? Με κόμμα ή με επί(*)??.

 

αλλά μου λέει ότι δεν υπάρχει η fun...

Προσπαθώ να την ορίσω και δεν την δέχεται...

Γράφω:

fun=@(x)*(1,1);

αλλά δεν την δέχεται....Μπορεί κάποιος να μου τη διορθώσει??

 

Για να είναι ολοκληρωμένο το ερώτημα που παραθέτω παραπάνω, τι πρέπει να κάνω?

Δημοσ.
Στο παράδειγμα που ψάχνω(αυτό που αναφέρω στην αρχή) πρέπει να γίνεται:

b=blkproc(a,[4,4],fun);

Μέσα στιην αγγύλη πως πρ'επει να χωρίσω τα τεσσάρια?? Με κόμμα ή με επί(*)??.

 

αλλά μου λέει ότι δεν υπάρχει η fun...

Προσπαθώ να την ορίσω και δεν την δέχεται...

Γράφω:

fun=@(x)*(1,1);

αλλά δεν την δέχεται....Μπορεί κάποιος να μου τη διορθώσει??

 

Για να είναι ολοκληρωμένο το ερώτημα που παραθέτω παραπάνω, τι πρέπει να κάνω?

 

 

δοκίμασε καπως ετσι (αν εχω καταλάβει καλα, είπαμε δεν το κατέχω το θέμα της επεξεργας εικόνας...:-))

 

 

b=blkproc(a,[4 4],fun);

fun = @(x) x(2,2);

Δημοσ.

Αν γράψω πρώτα την blkproc μου λέει ??? Undefined function or variable 'fun'.

Αν γράψω πρώτα τη fun και μετά την blkproc μου λέει ??? Subscripted assignment dimension mismatch.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...