how can i change the value of red in a pixel in a photo?

1 回表示 (過去 30 日間)
amira hl
amira hl 2015 年 6 月 6 日
編集済み: Walter Roberson 2015 年 6 月 6 日
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

採用された回答

Image Analyst
Image Analyst 2015 年 6 月 6 日
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 件のコメント
amira hl
amira hl 2015 年 6 月 6 日
編集済み: Walter Roberson 2015 年 6 月 6 日
clc; clear all; close all;
im=imread('photo.jpg');
l=impixel(im,1,5)
im(1,5,1)=10;
impixel(im,1,5)
executing =>
l =
232 239 255
ans =
232 239 255
nothing change
Image Analyst
Image Analyst 2015 年 6 月 6 日
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.

サインインしてコメントする。

その他の回答 (0 件)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by