Ich habe Arbeit an einem Programm erstellt, das ein Bild von einer Münze aufnimmt und dann das Gesicht zu den besten Matlab-Fähigkeiten herauszieht (Beispiel unten). Mit diesem Programm möchte ich mit der Bildverarbeitung experimentieren, ähnlich wie Google Bilder es Benutzern ermöglicht, nach Bildern zu suchen und Ergebnisse zu erhalten, von denen sie glaubt, dass sie ähnlich sind.Matlab - Ergebnisse automatisch generieren
Application Image | Further Application Image Example
Dafür würde ich eine Menge Daten benötigen, um dies zu erreichen und manuell den Schieberegler in meiner Anwendung zu verwenden und 50-100 Ergebnisse für jedes Bild zu generieren würde zu lange dauern. Also habe ich beschlossen, eine neue Schaltfläche zu erstellen, die 100 Ergebnisse generiert, wobei jedes Ergebnis ein anderes gezeichnetes Beispiel liefert.
function slider2_Callback(hObject, eventdata, handles)
% hObject handle to slider2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'Value') returns position of slider
% get(hObject,'Min') and get(hObject,'Max') to determine range of slider
global coins_gray;
global num;
val=0.5*get(hObject,'Value')-0.5; %Adjusts the intensity of the slider's brightness setting
imbrightness = coins_gray+val;
axes(handles.axes3);
imshow(imbrightness);
title('Altered Coin Image', 'fontweight', 'bold');
[~, threshold] = edge(imbrightness, 'Canny');
fudgeFactor = num;
img_edge = edge(imbrightness, 'Canny', threshold * fudgeFactor);
axes(handles.axes4)
imshow(img_edge);
title('User Drawn Image', 'fontweight', 'bold');
oben zeigt, wie die Schieber funktioniert, aber ich bin mir nicht sicher, wie es passen sich automatisch zu arbeiten, wie, wie ich erwähnt habe.
function gatherbutton_Callback(hObject, eventdata, handles)
% hObject handle to gatherbutton (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
%Prompts the user to enter a title for the image gathering process
prompt = ('Please Enter The Image Name (Do Not Include File Extension): ');
userInput = input(prompt, 's');
counter = 0
while counter < 100:
processFolder = sprintf('M:/Project/MatLab/Coin Image Processing/Image Processing/%s_%s.jpg', userInput, counter);
referenceImagePrep = getframe(handles.axes3);
drawnImagePrep = getframe(handles.axes4);
counter = counter + 1;
end
Dies ist, was ich bisher habe. Die Schleife sollte also 100-mal laufen und jedes Mal, wenn sie ausgeführt wird, wird ein neues Bild in das angegebene Verzeichnis gespeichert und sollte weiterlaufen, bis die while-Schleife abgeschlossen ist. Wie passe ich nun meine While-Schleife an, um automatisch die Helligkeit des Referenzbildes zu ändern und dieses Bild dann in den angegebenen Ordner zu speichern.