Inhaltsverzeichnis
1. Mehrere gängige Farbräume:
2 Farbraumkonvertierung in OpenCV
3. Einfaches Zauberstabprogramm
Heim Web-Frontend PS-Tutorial Der Weg zum Wachstum von OpenCV (3): Nachahmung des Zauberstab-Tools in PhotoShop

Der Weg zum Wachstum von OpenCV (3): Nachahmung des Zauberstab-Tools in PhotoShop

Feb 20, 2017 am 09:09 AM
photoshop

Das Thema dieses Artikels ist eigentlich die Konvertierung des Farbraums des Bildes mit Hilfe eines Farbauswahlprogramms, die Verwendung der Farbkonvertierungsfunktion in OpenCV und einige Vorsichtsmaßnahmen.

1. Mehrere gängige Farbräume:

RGB-Farbraum: RGB verwendet die additive Farbmischungsmethode, da sie das Verhältnis verschiedener „Lichter“ zur Erzeugung von Farben beschreibt. Ausgehend von der Dunkelheit überlagert sich kontinuierlich Licht, um Farbe zu erzeugen. RGB beschreibt die Werte von rotem, grünem und blauem Licht. Die digitale Bildspeicherung verwendet im Allgemeinen den RGB-Modus. Es ist zu beachten, dass die Speicherreihenfolge der drei Kanäle in OpenCV BGR ist.

HSV, HSI: Diese beiden Farbformate werden basierend auf der Unterscheidung zwischen Farben durch das menschliche Auge definiert, wobei H (Farbton) den Farbton darstellt, S (Sättigung) die Sättigung darstellt und V (Wert) die Helligkeit darstellt, I ( Intensität) steht für Helligkeit.

Lab-Raum: Gleichmäßige Änderungen im Modell entsprechen gleichmäßigen Änderungen in der wahrgenommenen Farbe, sodass wir uns Lab als einen Punkt im Farbraum vorstellen können. Je näher die benachbarten Punkte sind, desto näher liegen sie beieinander. Je näher, daher wird der Lab-Raum oft verwendet, um die Ähnlichkeit zweier Farben zu messen.

Weitere Informationen zum Farbraum finden Sie unter: http://en.wikipedia.org/wiki/Color_space

2 Farbraumkonvertierung in OpenCV

In OpenCV Die Farbkonvertierung des Bildes wird über die Funktion cvtColor abgeschlossen, die in der Header-Datei opencv2/imgproc/imgproc.hpp definiert ist:

void cvtColor ( InputArray src, OutputArray dst, int code, int dstCn=0 )

src: Eingabebild.

dst: Ausgabebild.

Code: Farbkonvertierungstyp, wie zum Beispiel: CV_BGR2Lab, CV_BGR2HSV, CV_HSV2BGR, CV_BGR2RGB.

dstCn: Die Kanalnummer des Ausgabebildes. Wenn der Standardwert 0 ist, bedeutet dies die Anzahl der Kanäle des Eingabebildes.

Konvertieren Sie das Bild von BGR in Lab: cvtColor(image,image,CV_BGR2Lab)

3. Einfaches Zauberstabprogramm

Zuerst definieren wir eine colorDetect-Klasse:

class colorDetect{private:    int minDist; //minium acceptable distance    Vec3b target;//target color;    
    Mat result; //the resultpublic:
    colorDetect();    void SetMinDistance(int dist);    void SetTargetColor(uchar red,uchar green,uchar blue);    void SetTargetColor(Vec3b color); //set the target color    Mat process(const Mat& image); //main process};
Nach dem Login kopieren

MinDist ist der Schwellenwert, den wir definiert haben, um den Abstand zwischen zwei Farben zu begrenzen, was dem Schwellenwert des Zauberstab-Werkzeugs in PhotoShop entspricht.

Ziel ist die Zielfarbe, die der Samenfarbe entspricht. Ergebnis ist das Ergebnis der Speicherverarbeitung.

Prozess ist das Hauptverarbeitungsprogramm. Schauen wir uns den Inhalt des Prozesses an.

Mat colorDetect::process(const Mat& image)
{    Mat ImageLab=image.clone();
    result.create(image.rows,image.cols,CV_8U);    
    //将image转换为Lab格式存储在ImageLab中    
    cvtColor(image,ImageLab,CV_BGR2Lab);    
    //将目标颜色由BGR转换为Lab    
    Mat temp(1,1,CV_8UC3);
    temp.at<Vec3b>(0,0)=target;//创建了一张1*1的临时图像并用目标颜色填充    
    cvtColor(temp,temp,CV_BGR2Lab);
    target=temp.at<Vec3b>(0,0);//再从临时图像的Lab格式中取出目标颜色

    // 创建处理用的迭代器    
    Mat_<Vec3b>::iterator it=ImageLab.begin<Vec3b>();    
    Mat_<Vec3b>::iterator itend=ImageLab.end<Vec3b>();    
    Mat_<uchar>::iterator itout=result.begin<uchar>();    
    while(it!=itend)
    {        
    //两个颜色值之间距离的计算        
    int dist=static_cast<int>(norm<int,3>(Vec3i((*it)[0]-target[0],
            (*it)[1]-target[1],(*it)[2]-target[2])));        
            if(dist<minDist)
            (*itout)=255;        
            else            
            (*itout)=0;
        it++;
        itout++;
    }    return result;
}
Nach dem Login kopieren


Es gibt zwei Punkte, die im Programm besondere Aufmerksamkeit erfordern:

1. Nach der Konvertierung des Bildes in den Lab-Farbraum auch die Zielfarbe konvertiert werden muss, besteht der Ansatz darin, ein temporäres Image zu erstellen.

2. Die Normfunktion wird verwendet, um den Abstand zwischen zwei Farben zu bestimmen. Ihre Operation ist norm(v). wobei v ein dimmdimensionaler Vektor ist. Im Programm handelt es sich um einen dreidimensionalen, angemessenen Betrag, der sich aus der Subtraktion zweier Farbwerte ergibt.

Es lohnt sich darüber nachzudenken, ob Vec3i((*it)[0]-target[0],(*it)[1]-target[1],(*it)[2]- Was über das Ersetzen von target[2]) durch Vec3i((*it)-target)? Die Antwort lautet „Nein“, da (*it)-target den Typ des Subtraktionsergebnisses während der tatsächlichen Operation automatisch einschränkt.

Nachdem wir die Zielfarbe und den Schwellenwert wie folgt festgelegt haben, können wir einen Beispieleffekt erhalten:

cdet.SetTargetColor(150,150,150);
cdet.SetMinDistance(50);

Der Weg zum Wachstum von OpenCV (3): Nachahmung des Zauberstab-Tools in PhotoShop

Weitere Informationen zum OpenCV-Wachstumspfad (3): Nachahmung des Zauberstab-Tools in PhotoShop finden Sie auf der chinesischen PHP-Website für verwandte Artikel!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie benutze ich Photoshop zum Erstellen von Social -Media -Grafiken? Wie benutze ich Photoshop zum Erstellen von Social -Media -Grafiken? Mar 18, 2025 pm 01:41 PM

Die Artikel detailliert mit Photoshop für Social -Media -Grafiken, Abdeckungen von Setup, Design -Tools und Optimierungstechniken. Es betont Effizienz und Qualität bei der Grafikkreation.

Was ist der Grund, warum PS immer wieder Laden zeigt? Was ist der Grund, warum PS immer wieder Laden zeigt? Apr 06, 2025 pm 06:39 PM

PS "Laden" Probleme werden durch Probleme mit Ressourcenzugriff oder Verarbeitungsproblemen verursacht: Die Lesegeschwindigkeit von Festplatten ist langsam oder schlecht: Verwenden Sie Crystaldiskinfo, um die Gesundheit der Festplatte zu überprüfen und die problematische Festplatte zu ersetzen. Unzureichender Speicher: Upgrade-Speicher, um die Anforderungen von PS nach hochauflösenden Bildern und komplexen Schichtverarbeitung zu erfüllen. Grafikkartentreiber sind veraltet oder beschädigt: Aktualisieren Sie die Treiber, um die Kommunikation zwischen PS und der Grafikkarte zu optimieren. Dateipfade sind zu lang oder Dateinamen haben Sonderzeichen: Verwenden Sie kurze Pfade und vermeiden Sie Sonderzeichen. Das eigene Problem von PS: Installieren oder reparieren Sie das PS -Installateur neu.

Wie bereite ich Bilder für das Web mithilfe von Photoshop vor (optimieren Sie die Dateigröße, Auflösung)? Wie bereite ich Bilder für das Web mithilfe von Photoshop vor (optimieren Sie die Dateigröße, Auflösung)? Mar 18, 2025 pm 01:35 PM

In Artikeln wird die Optimierung von Bildern für das Web mithilfe von Photoshop erläutert, wobei der Schwerpunkt auf Dateigröße und -auflösung liegt. Das Hauptproblem ist die Ausgleich von Qualität und Ladezeiten.

Wie bereite ich Bilder für den Druck mit Photoshop (Auflösung, Farbprofile) vor? Wie bereite ich Bilder für den Druck mit Photoshop (Auflösung, Farbprofile) vor? Mar 18, 2025 pm 01:36 PM

Der Artikel führt zum Vorbereiten von Bildern für den Druck in Photoshop und konzentriert sich auf Auflösung, Farbprofile und Schärfe. Es wird argumentiert, dass 300 pPI- und CMYK -Profile für Qualitätsdrucke unerlässlich sind.

Wie erstelle ich animierte GIFs in Photoshop? Wie erstelle ich animierte GIFs in Photoshop? Mar 18, 2025 pm 01:38 PM

In Artikel werden animierte GIFs in Photoshop erstellt und optimiert, einschließlich Hinzufügen von Frames zu vorhandenen GIFs. Der Schwerpunkt liegt auf dem Ausgleich von Qualität und Dateigröße.

Wie verwende ich Photoshops Videobearbeitungsfunktionen? Wie verwende ich Photoshops Videobearbeitungsfunktionen? Mar 18, 2025 pm 01:37 PM

In dem Artikel wird erläutert, wie Photoshop zum Bearbeiten von Videoen verwendet wird, Schritte zum Importieren, Bearbeiten und Exportieren von Videos sowie zum Hervorheben von Schlüsselfunktionen wie Timeline -Panel, Videoebenen und Effekten.

Was sind die häufigsten Fragen zum Exportieren von PDF auf PS Was sind die häufigsten Fragen zum Exportieren von PDF auf PS Apr 06, 2025 pm 04:51 PM

Häufig gestellte Fragen und Lösungen beim Exportieren von PS als PDF: Schriftbettungsprobleme: Überprüfen Sie die Option "Schriftart", wählen Sie "Einbetten" oder konvertieren Sie die Schriftart in eine Kurve (Pfad). Farbabweichungsproblem: Umwandeln Sie die Datei in den CMYK -Modus und passen Sie die Farbe an. Das direkte Exportieren mit RGB erfordert eine psychologische Vorbereitung auf Vorschau und Farbabweichung. Auflösungs- und Dateigrößesprobleme: Wählen Sie die Lösung gemäß den tatsächlichen Bedingungen oder verwenden Sie die Komprimierungsoption, um die Dateigröße zu optimieren. Problem mit Spezialeffekten: Vor dem Exportieren oder Abwägen der Vor- und Nachteile verschmelzen (flach) Schichten.

Wie beschleunigt man die Ladegeschwindigkeit von PS? Wie beschleunigt man die Ladegeschwindigkeit von PS? Apr 06, 2025 pm 06:27 PM

Das Lösen des Problems des langsamen Photoshop-Startups erfordert einen mehrstufigen Ansatz, einschließlich: Upgrade-Hardware (Speicher, Solid-State-Laufwerk, CPU); Deinstallieren veraltete oder inkompatible Plug-Ins; Reinigen des Systemmülls und übermäßiger Hintergrundprogramme regelmäßig; irrelevante Programme mit Vorsicht schließen; Vermeiden Sie das Öffnen einer großen Anzahl von Dateien während des Starts.

See all articles