|
Autor |
Bild mit niedrigem Licht verbessern |
|
che
Aktiv  Dabei seit: 06.02.2006 Mitteilungen: 576
Wohnort: BaWü
 | Themenstart: 2019-01-20
|
Hallo,
ich habe hier zwei Aufgaben die aufeinander aufbauen.
Als erstes sollen folgende Gleichungen implementiert werden:
I_(n+1)(x,y) = (sum((w_ij*I_n(x+i,y+j)),i\,j=-1,1)/sum(w_ij,i\,j=-1,1))
w_ij = exp(-k*abs(I_n(x,y)-I_n(x+i,y+j)))
Dies habe ich mit folgendem Matlab-Skript umgesetzt, stimmt das soweit?
Dieses Skript glättet kleine Farbunebenheiten und erzeugt schärfere Kanten.
\sourceon MatlabSkript
clear all; clc;
im = im2double(imread('test.tif'));
[rows, cols] = size(im);
im1 = im;
im2p = zeros(rows, cols);
im2 = zeros(rows, cols);
im_p1 = zeros(rows, cols);
w_ij = zeros(3,3);
N = 10; % number of iterations
para = 100;
for k = 1 : N % iterations
for x = 2 : rows - 1
for y = 2 : cols - 1 % for each inner pixel
w_ij_sum=0;
for i = -1 : 1
for j = -1 : 1
w_ij(i+2,j+2) = exp(-para*abs(im1(x,y)-im1(x+i,y+j)));
im2p(x,y) = (w_ij(i+2,j+2)*im1(x+i,y+j)) + im2p(x,y);
w_ij_sum = w_ij_sum + w_ij(i+2,j+2);
end
end
im2p(x,y) = im2p(x,y)/w_ij_sum;
end
end
im1 = im2p;
im2p = zeros(rows, cols);
end
subplot(1,2,1);
imshow(im);
subplot(1,2,2);
imshow(im1);
\sourceoff
Im zweiten Teil soll Bilder mit niedrigem Lichtanteil verbessert werden:
T(x,y) = max_(C \el\ {R,G,B}) L_C(x,y)
R(x,y) = L(x,y)/(U(x,y)+\epsilon)
U(x,y) kann mit dem MatlabScript aus dem ersten Teil erzeugt werden. \epsilon ist eine kleine Zahl um Division mit 0 zu vermeiden.
Dazu hab ich folgendes das erste Skript erweitert:
\sourceon MatlabSkript
clear all; clc;
read_image = im2double(imread('test.bmp'));
image_temp_1 = read_image;
[rows, cols, pages] = size(image_temp_1);
image_temp_2 = zeros(rows, cols);
image_max_temp = zeros(rows, cols);
image_max_ges = zeros(rows, cols);
image_processed_1 = zeros(rows, cols, pages);
image_proc_result = zeros(rows, cols, pages);
w_ij = zeros(3,3);
w_ij_sum = zeros(rows, cols);
N = 50; % number of iterations
parameter = 1;
epsilon = 0.15;
for p = 1 : 3
for x = 2 : rows - 1
for y = 2 : cols - 1 % for each inner pixel
image_max_temp(x,y) = max(max(image_temp_1(x,y,p)));
if (image_max_ges(x,y)
|
Profil
|
che
Aktiv  Dabei seit: 06.02.2006 Mitteilungen: 576
Wohnort: BaWü
 | Beitrag No.1, vom Themenstarter, eingetragen 2019-01-20
|
Mein problem liegt hauptsächlich in dieser Gleichung:
T(x,y) = max_(C \el\ {R,G,B}) L_C(x,y)
ich bin mir nicht sicher wie ich das umsetzen kann/muss.
|
Profil
| Folgende Antworten hat der Fragensteller vermutlich noch nicht gesehen. |
Delastelle
Senior  Dabei seit: 17.11.2006 Mitteilungen: 2320
 | Beitrag No.2, eingetragen 2020-02-23
|
Hallo che!
Die Frage liegt zwar schon etwas zurück, ich antworte aber mal!
Ich habe sowohl Erfahrung mit Matlab als auch mit Fotografie.
Aufhellen von RGB-Bildern habe ich meist mit Addition/Subraktion bei R, G und B getan.
Ist die Aufgabenstellung inzwischen gelöst?
Viele Grüße
Ronald
|
Profil
|
|
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2023 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen. Lesen Sie die
Nutzungsbedingungen,
die Distanzierung,
die Datenschutzerklärung und das Impressum.
[Seitenanfang]
|