how can i change the value of red in a pixel in a photo?
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
amira hl
il 6 Giu 2015
Modificato: Walter Roberson
il 6 Giu 2015
hi voici le code
clc; clear all; close all;
im=imread('photo.jpg');
b=1;
delta=20;
wi=0
l=impixel(im,1,5);
f=l(1)
m=floor(f/((2^b)*delta));
r=f-(2^b)*m*delta;
f1=(2^b)*m*delta+wi*delta+r/(2^b)
impixel(im,1,5)(1)=f1
le dernier ligne a généré cette erreur
??? Error: File: Untitledtest.m Line: 14 Column: 1
()-indexing must appear last in an index expression.
comment faire pour changer un seul valeur parmi le 3 valeurs dans un pixel choisi??
merci
0 Commenti
Risposta accettata
Image Analyst
il 6 Giu 2015
You cannot do this:
impixel(im,1,5)(1)=f1
If you want to set row 1, column 5 of image im to a value of f1, you need to do this:
im(1, 5) = f1;
7 Commenti
Image Analyst
il 6 Giu 2015
You need to make sure whether you're dealing with x,y or row, column. Looking at the help to make sure.....
% Read in RGB image.
im = imread('peppers.png');
% Define a row and column.
c = 1;
r = 5;
% Check value of image at row 5, column 1.
rgbValues1 = impixel(im, c, r)
im(r,c,1)=10;
rgbValues2 = impixel(im, c, r)
You get:
rgbValues1 =
63 31 62
rgbValues2 =
10 31 62
Note, impixel takes x,y (which is the same as col, row), whereas indexing an array is always row, col. So you need to make sure you're using the right form (order) in the right place.
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Read, Write, and Modify Image in Help Center e File Exchange
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!