Matroids Matheplanet Forum Index
Moderiert von mire2
Mathematische Software & Apps » Matlab » Bild mit niedrigem Licht verbessern
Autor
Universität/Hochschule Bild mit niedrigem Licht verbessern
che
Aktiv Letzter Besuch: in der letzten Woche
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 Letzter Besuch: in der letzten Woche
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 Letzter Besuch: in der letzten Woche
Dabei seit: 17.11.2006
Mitteilungen: 2315
  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

Wechsel in ein anderes Forum:
 Suchen    
 
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]