diff --git a/ora6/.clangd b/ora1/.clangd similarity index 100% rename from ora6/.clangd rename to ora1/.clangd diff --git a/ora1/main2.cpp b/ora1/main2.cpp index 66ebd16..41109da 100644 --- a/ora1/main2.cpp +++ b/ora1/main2.cpp @@ -16,7 +16,6 @@ int main(){ Mat mask(img.rows, img.cols, CV_8UC1); Mat mask2 = Mat::zeros(img.size(), CV_8UC1); //kinullazot (fekete) mask (vagy barmi mas kep) - //masolat Mat copy = img.clone(); //deepcopy //copy.setTo(Scalar(255,0,0)); //shallow copy -> changes original diff --git a/ora6/proj/.clangd b/ora3/.clangd similarity index 100% rename from ora6/proj/.clangd rename to ora3/.clangd diff --git a/ora6/proj1/.clangd b/ora4/.clangd similarity index 100% rename from ora6/proj1/.clangd rename to ora4/.clangd diff --git a/ora6/proj2/.clangd b/ora4/proj2/.clangd similarity index 100% rename from ora6/proj2/.clangd rename to ora4/proj2/.clangd diff --git a/ora4/proj4/main4.cpp b/ora4/proj4/main4.cpp index a2f424b..2c35606 100644 --- a/ora4/proj4/main4.cpp +++ b/ora4/proj4/main4.cpp @@ -7,7 +7,7 @@ using namespace cv; int main(){ - Mat img = imread("../KossuthSquare/SnapShot-20180731_173715.jpg.png"/*, IMREAD_COLOR*/); + Mat img = imread("../KossuthSquare/SnapShot-20180731_173715.jpg"/*, IMREAD_COLOR*/); Mat acc = Mat::zeros(img.size(), CV_64FC3); diff --git a/ora5/proj4/main.cpp b/ora5/proj4/main.cpp index 62afaaf..a6e291d 100644 --- a/ora5/proj4/main.cpp +++ b/ora5/proj4/main.cpp @@ -30,7 +30,7 @@ int calc_th(Mat img, float fg_ratio = 0.1f){ int main(){ Mat img = imread("../scanned3.png", IMREAD_GRAYSCALE); int th = calc_th(img, 0.1f); - + imshow("t", img); Mat mask; if(th != -1){ threshold(img, mask, th, 255, THRESH_BINARY); diff --git a/ora6/American_Eskimo_Dog.jpg b/ora6/American_Eskimo_Dog.jpg deleted file mode 100644 index 12f0e0d..0000000 Binary files a/ora6/American_Eskimo_Dog.jpg and /dev/null differ diff --git a/ora6/Képek (morfológia)-20251030.zip b/ora6/Képek (morfológia)-20251030.zip deleted file mode 100644 index f992280..0000000 Binary files a/ora6/Képek (morfológia)-20251030.zip and /dev/null differ diff --git a/ora6/Képek (élkeresés)-20251030.zip b/ora6/Képek (élkeresés)-20251030.zip deleted file mode 100644 index af418d2..0000000 Binary files a/ora6/Képek (élkeresés)-20251030.zip and /dev/null differ diff --git a/ora6/Makefile b/ora6/Makefile deleted file mode 100644 index a350518..0000000 --- a/ora6/Makefile +++ /dev/null @@ -1,18 +0,0 @@ -CXX = g++ -CXXFLAGS = -Wall -O2 `pkg-config --cflags opencv4` -LIBS = `pkg-config --libs opencv4` - -SRC = $(wildcard *.cpp) -OBJ = $(SRC:.cpp=.o) -TARGET = main - -all: $(TARGET) - -$(TARGET): $(OBJ) - $(CXX) $(OBJ) -o $@ $(LIBS) - -%.o: %.cpp - $(CXX) $(CXXFLAGS) -c $< -o $@ - -clean: - rm -f $(OBJ) $(TARGET) diff --git a/ora6/annotalt_sejt.png b/ora6/annotalt_sejt.png deleted file mode 100644 index 46666e2..0000000 Binary files a/ora6/annotalt_sejt.png and /dev/null differ diff --git a/ora6/edges_noise.png b/ora6/edges_noise.png deleted file mode 100644 index 5dc42cf..0000000 Binary files a/ora6/edges_noise.png and /dev/null differ diff --git a/ora6/galaxy.jpg b/ora6/galaxy.jpg deleted file mode 100644 index 8dcada4..0000000 Binary files a/ora6/galaxy.jpg and /dev/null differ diff --git a/ora6/go2.png b/ora6/go2.png deleted file mode 100644 index cdf92a8..0000000 Binary files a/ora6/go2.png and /dev/null differ diff --git a/ora6/graycat.jpg b/ora6/graycat.jpg deleted file mode 100644 index 110a5cb..0000000 Binary files a/ora6/graycat.jpg and /dev/null differ diff --git a/ora6/hela.zip b/ora6/hela.zip deleted file mode 100644 index 10b8499..0000000 Binary files a/ora6/hela.zip and /dev/null differ diff --git a/ora6/hela/0.png b/ora6/hela/0.png deleted file mode 100644 index de63b87..0000000 Binary files a/ora6/hela/0.png and /dev/null differ diff --git a/ora6/hela/1.png b/ora6/hela/1.png deleted file mode 100644 index efb2e45..0000000 Binary files a/ora6/hela/1.png and /dev/null differ diff --git a/ora6/hela/2.png b/ora6/hela/2.png deleted file mode 100644 index c5ba84c..0000000 Binary files a/ora6/hela/2.png and /dev/null differ diff --git a/ora6/hela/3.png b/ora6/hela/3.png deleted file mode 100644 index a2627a4..0000000 Binary files a/ora6/hela/3.png and /dev/null differ diff --git a/ora6/hela/4.png b/ora6/hela/4.png deleted file mode 100644 index f231bbc..0000000 Binary files a/ora6/hela/4.png and /dev/null differ diff --git a/ora6/hela/5.png b/ora6/hela/5.png deleted file mode 100644 index bcc45ce..0000000 Binary files a/ora6/hela/5.png and /dev/null differ diff --git a/ora6/hela/6.png b/ora6/hela/6.png deleted file mode 100644 index dc78d4d..0000000 Binary files a/ora6/hela/6.png and /dev/null differ diff --git a/ora6/hela/7.png b/ora6/hela/7.png deleted file mode 100644 index 222f8ba..0000000 Binary files a/ora6/hela/7.png and /dev/null differ diff --git a/ora6/hela/8.png b/ora6/hela/8.png deleted file mode 100644 index 0a887bd..0000000 Binary files a/ora6/hela/8.png and /dev/null differ diff --git a/ora6/hela/9.png b/ora6/hela/9.png deleted file mode 100644 index cbc5e95..0000000 Binary files a/ora6/hela/9.png and /dev/null differ diff --git a/ora6/histo.cpp b/ora6/histo.cpp deleted file mode 100644 index 42352bc..0000000 --- a/ora6/histo.cpp +++ /dev/null @@ -1,126 +0,0 @@ -/* -Kepfeld. gyak. - nehany segedfuggveny az orai anyag konnyebb szemleltetesehez. -*/ - -#include -#include -#include -#include -#include "histo.h" - -using namespace std; -using namespace cv; - -void Histo::calcHistoC1(const cv::Mat img, cv::Mat& histo) { - assert(img.type() == CV_8UC1); - - // CV_32U nem letezik, ha de CV_16U-t (ushort) hasznalhatsz, ha akarsz. - histo = Mat::zeros(256, 1, CV_32S); - for (int i = 0; i < img.rows; i++) - for (int j = 0; j < img.cols; j++) - histo.at(img.at(i, j))++; -} - - -void Histo::calcHistoC3(const cv::Mat img, vector& histo_vect) { - assert(img.type() == CV_8UC3); - - vector chs; - split(img.clone(), chs); - - Mat h0, h1, h2; - Histo::calcHistoC1(chs[0], h0); - Histo::calcHistoC1(chs[1], h1); - Histo::calcHistoC1(chs[2], h2); - - histo_vect.clear(); - histo_vect.push_back(h0); - histo_vect.push_back(h1); - histo_vect.push_back(h2); -} - - - -void Histo::drawHistoC1(const cv::Mat histo, cv::Mat& canvas, int channel) { - assert(histo.type() == CV_32S); - - int pad = 10; - canvas = Mat::zeros(200 + 2 * pad, 256 + 2 * pad, CV_8UC3); - - // a hisztogram alatti szurke sav rajzolasa - for (int i = 0; i < 10; ++i) { // 10 pixel vastag lesz, hogy jol latszodjon - for (int j = 0; j < 256; ++j) { - if (0 <= channel && channel <= 2) { - canvas.at(canvas.rows - 1 - i, j + pad)[channel] = j; - } - else { - canvas.at(canvas.rows - 1 - i, j + pad) = Vec3b(j, j, j); - } - } - } - - - Vec3b color(255, 255, 255); - if (0 <= channel && channel <= 2) { - color = Vec3b(0, 0, 0); - color[channel] = 255; - } - - - double minv, maxv; - minMaxLoc(histo, &minv, &maxv); - - double scale = 200 / maxv; // az ablak magassagahoz igazitom a hisztogram magassagat - - // a hisztogram rajzolasa - for (int i = 0; i < 256; ++i) { - // egy oszlop magassage (a line(Point(0, 0), Point(0, 1)) 2 pixelt rajzolna, ezert a -1) - int v = int(histo.at(i) * scale) - 1; - // canvas.rows-2-pad oldja meg, hogy a szurke sav felett kezdjuk a rajzolast - if (v >= 0) - line(canvas, Point(pad + i, canvas.rows - 2 - v - pad), Point(pad + i, canvas.rows - 2 - pad), color); - } -} - - -void Histo::drawHistoC3(const vector histos, vector& canvases) { - assert(histos.size() == 3 && - histos[0].type() == CV_32S && histos[1].type() == CV_32S && histos[2].type() == CV_32S); - - canvases.clear(); - for (int i = 0; i <= 2; ++i) { - Mat canvas; - Histo::drawHistoC1(histos[i], canvas, i); - canvases.push_back(canvas.clone()); - } -} - - -void Histo::showHisto(Mat img, string title, int wait) { - assert(img.type() == CV_8UC1 || img.type() == CV_8UC3); - - if (img.type() == CV_8UC1) { - Mat histo; - Histo::calcHistoC1(img, histo); - - // az ertekek konzolra iratasa - //cout << histo << endl; - - Mat canvas; - Histo::drawHistoC1(histo, canvas); - imshow(title, canvas); - } - else if (img.type() == CV_8UC3) { - vector histos; - Histo::calcHistoC3(img, histos); - - vector canvases; - Histo::drawHistoC3(histos, canvases); - - string str = "BGR"; - for (int i = 0; i <= 2; ++i) { - imshow(title + "-" + str[i], canvases[i]); - } - } - waitKey(wait); -} diff --git a/ora6/histo.h b/ora6/histo.h deleted file mode 100644 index 9178101..0000000 --- a/ora6/histo.h +++ /dev/null @@ -1,32 +0,0 @@ -/* -Kepfeld. gyak. - nehany segedfuggveny az orai anyag konnyebb szemleltetesehez. - 1 es 3 csatornas, csatornankent 8 bites kepekre: - Histo::showHisto(img); -*/ -#ifndef HISTO_H_ -#define HISTO_H_ - -#include -#include - -using namespace std; -using namespace cv; - -namespace Histo { - void calcHistoC1(const cv::Mat img, cv::Mat& histo); - void calcHistoC3(const cv::Mat img, vector& histo); - - void drawHistoC1(const cv::Mat histo, cv::Mat& canvas, int channel = -1); - void drawHistoC3(const vector histos, vector& canvases); - - /// - /// Egy kep hisztogramjanak megjelenitese. - /// - /// 1 vagy 3 csatornas input kep - /// ablaknev - /// varakoztatas - void showHisto(Mat img, string title = "histo", int wait = 0); -}; - - -#endif HISTO_H_ diff --git a/ora6/labirintus.png b/ora6/labirintus.png deleted file mode 100644 index e070d0c..0000000 Binary files a/ora6/labirintus.png and /dev/null differ diff --git a/ora6/main.cpp b/ora6/main.cpp deleted file mode 100644 index d20cd44..0000000 --- a/ora6/main.cpp +++ /dev/null @@ -1,26 +0,0 @@ -#include "histo.h" -#include -#include -#include -#include - -using namespace cv; - -int main(){ - Mat img = imread("dark_img.jpg", IMREAD_GRAYSCALE); - imshow("img", img); - Histo::showHisto(img); - - double ah, fh; - minMaxLoc(img, &ah, &fh); - - fh = 30; - - Mat dest = (ah == fh) ? img.clone() : (img-ah) * 255 / (fh-ah); - - imshow("dest", dest); - Histo::showHisto(dest, "eredmeny"); - - waitKey(); - return 0; -} diff --git a/ora6/proj/Makefile b/ora6/proj/Makefile deleted file mode 100644 index a350518..0000000 --- a/ora6/proj/Makefile +++ /dev/null @@ -1,18 +0,0 @@ -CXX = g++ -CXXFLAGS = -Wall -O2 `pkg-config --cflags opencv4` -LIBS = `pkg-config --libs opencv4` - -SRC = $(wildcard *.cpp) -OBJ = $(SRC:.cpp=.o) -TARGET = main - -all: $(TARGET) - -$(TARGET): $(OBJ) - $(CXX) $(OBJ) -o $@ $(LIBS) - -%.o: %.cpp - $(CXX) $(CXXFLAGS) -c $< -o $@ - -clean: - rm -f $(OBJ) $(TARGET) diff --git a/ora6/proj/histo.cpp b/ora6/proj/histo.cpp deleted file mode 100644 index 42352bc..0000000 --- a/ora6/proj/histo.cpp +++ /dev/null @@ -1,126 +0,0 @@ -/* -Kepfeld. gyak. - nehany segedfuggveny az orai anyag konnyebb szemleltetesehez. -*/ - -#include -#include -#include -#include -#include "histo.h" - -using namespace std; -using namespace cv; - -void Histo::calcHistoC1(const cv::Mat img, cv::Mat& histo) { - assert(img.type() == CV_8UC1); - - // CV_32U nem letezik, ha de CV_16U-t (ushort) hasznalhatsz, ha akarsz. - histo = Mat::zeros(256, 1, CV_32S); - for (int i = 0; i < img.rows; i++) - for (int j = 0; j < img.cols; j++) - histo.at(img.at(i, j))++; -} - - -void Histo::calcHistoC3(const cv::Mat img, vector& histo_vect) { - assert(img.type() == CV_8UC3); - - vector chs; - split(img.clone(), chs); - - Mat h0, h1, h2; - Histo::calcHistoC1(chs[0], h0); - Histo::calcHistoC1(chs[1], h1); - Histo::calcHistoC1(chs[2], h2); - - histo_vect.clear(); - histo_vect.push_back(h0); - histo_vect.push_back(h1); - histo_vect.push_back(h2); -} - - - -void Histo::drawHistoC1(const cv::Mat histo, cv::Mat& canvas, int channel) { - assert(histo.type() == CV_32S); - - int pad = 10; - canvas = Mat::zeros(200 + 2 * pad, 256 + 2 * pad, CV_8UC3); - - // a hisztogram alatti szurke sav rajzolasa - for (int i = 0; i < 10; ++i) { // 10 pixel vastag lesz, hogy jol latszodjon - for (int j = 0; j < 256; ++j) { - if (0 <= channel && channel <= 2) { - canvas.at(canvas.rows - 1 - i, j + pad)[channel] = j; - } - else { - canvas.at(canvas.rows - 1 - i, j + pad) = Vec3b(j, j, j); - } - } - } - - - Vec3b color(255, 255, 255); - if (0 <= channel && channel <= 2) { - color = Vec3b(0, 0, 0); - color[channel] = 255; - } - - - double minv, maxv; - minMaxLoc(histo, &minv, &maxv); - - double scale = 200 / maxv; // az ablak magassagahoz igazitom a hisztogram magassagat - - // a hisztogram rajzolasa - for (int i = 0; i < 256; ++i) { - // egy oszlop magassage (a line(Point(0, 0), Point(0, 1)) 2 pixelt rajzolna, ezert a -1) - int v = int(histo.at(i) * scale) - 1; - // canvas.rows-2-pad oldja meg, hogy a szurke sav felett kezdjuk a rajzolast - if (v >= 0) - line(canvas, Point(pad + i, canvas.rows - 2 - v - pad), Point(pad + i, canvas.rows - 2 - pad), color); - } -} - - -void Histo::drawHistoC3(const vector histos, vector& canvases) { - assert(histos.size() == 3 && - histos[0].type() == CV_32S && histos[1].type() == CV_32S && histos[2].type() == CV_32S); - - canvases.clear(); - for (int i = 0; i <= 2; ++i) { - Mat canvas; - Histo::drawHistoC1(histos[i], canvas, i); - canvases.push_back(canvas.clone()); - } -} - - -void Histo::showHisto(Mat img, string title, int wait) { - assert(img.type() == CV_8UC1 || img.type() == CV_8UC3); - - if (img.type() == CV_8UC1) { - Mat histo; - Histo::calcHistoC1(img, histo); - - // az ertekek konzolra iratasa - //cout << histo << endl; - - Mat canvas; - Histo::drawHistoC1(histo, canvas); - imshow(title, canvas); - } - else if (img.type() == CV_8UC3) { - vector histos; - Histo::calcHistoC3(img, histos); - - vector canvases; - Histo::drawHistoC3(histos, canvases); - - string str = "BGR"; - for (int i = 0; i <= 2; ++i) { - imshow(title + "-" + str[i], canvases[i]); - } - } - waitKey(wait); -} diff --git a/ora6/proj/histo.h b/ora6/proj/histo.h deleted file mode 100644 index 9178101..0000000 --- a/ora6/proj/histo.h +++ /dev/null @@ -1,32 +0,0 @@ -/* -Kepfeld. gyak. - nehany segedfuggveny az orai anyag konnyebb szemleltetesehez. - 1 es 3 csatornas, csatornankent 8 bites kepekre: - Histo::showHisto(img); -*/ -#ifndef HISTO_H_ -#define HISTO_H_ - -#include -#include - -using namespace std; -using namespace cv; - -namespace Histo { - void calcHistoC1(const cv::Mat img, cv::Mat& histo); - void calcHistoC3(const cv::Mat img, vector& histo); - - void drawHistoC1(const cv::Mat histo, cv::Mat& canvas, int channel = -1); - void drawHistoC3(const vector histos, vector& canvases); - - /// - /// Egy kep hisztogramjanak megjelenitese. - /// - /// 1 vagy 3 csatornas input kep - /// ablaknev - /// varakoztatas - void showHisto(Mat img, string title = "histo", int wait = 0); -}; - - -#endif HISTO_H_ diff --git a/ora6/proj/main.cpp b/ora6/proj/main.cpp deleted file mode 100644 index 43cb907..0000000 --- a/ora6/proj/main.cpp +++ /dev/null @@ -1,46 +0,0 @@ -#include "histo.h" -#include "opencv2/imgcodecs.hpp" -#include -#include -#include -#include - -using namespace cv; - -void thinning(const Mat img, Mat& skel){ - Mat mask, se, eroded, tmp; - mask = img.clone(); - - se = Mat::zeros(img.size(), CV_8UC1); - se = getStructuringElement(MORPH_CROSS, Size(3,3)); - - while(true){ - erode(mask, eroded, se); - dilate(eroded, tmp, se); - tmp = mask - tmp; - skel = skel | tmp; - eroded.copyTo(mask); //shallow copy miatt kulonben csak a fejlecet masolja - - if(countNonZero(mask) == 0){ - break; - } - imshow("mask", mask); - imshow("skel", skel); - waitKey(100); - } -} - - -int main(){ - Mat img = imread("../wrench.jpg", IMREAD_GRAYSCALE); - Mat mask, skel; - - threshold(img, mask, 80, 255, THRESH_BINARY_INV); - //medianBlur(mask, mask, 7); - thinning(mask, skel); - - imshow("mask", mask); - - waitKey(0); - return 0; -} diff --git a/ora6/proj1/Makefile b/ora6/proj1/Makefile deleted file mode 100644 index a350518..0000000 --- a/ora6/proj1/Makefile +++ /dev/null @@ -1,18 +0,0 @@ -CXX = g++ -CXXFLAGS = -Wall -O2 `pkg-config --cflags opencv4` -LIBS = `pkg-config --libs opencv4` - -SRC = $(wildcard *.cpp) -OBJ = $(SRC:.cpp=.o) -TARGET = main - -all: $(TARGET) - -$(TARGET): $(OBJ) - $(CXX) $(OBJ) -o $@ $(LIBS) - -%.o: %.cpp - $(CXX) $(CXXFLAGS) -c $< -o $@ - -clean: - rm -f $(OBJ) $(TARGET) diff --git a/ora6/proj1/histo.cpp b/ora6/proj1/histo.cpp deleted file mode 100644 index 42352bc..0000000 --- a/ora6/proj1/histo.cpp +++ /dev/null @@ -1,126 +0,0 @@ -/* -Kepfeld. gyak. - nehany segedfuggveny az orai anyag konnyebb szemleltetesehez. -*/ - -#include -#include -#include -#include -#include "histo.h" - -using namespace std; -using namespace cv; - -void Histo::calcHistoC1(const cv::Mat img, cv::Mat& histo) { - assert(img.type() == CV_8UC1); - - // CV_32U nem letezik, ha de CV_16U-t (ushort) hasznalhatsz, ha akarsz. - histo = Mat::zeros(256, 1, CV_32S); - for (int i = 0; i < img.rows; i++) - for (int j = 0; j < img.cols; j++) - histo.at(img.at(i, j))++; -} - - -void Histo::calcHistoC3(const cv::Mat img, vector& histo_vect) { - assert(img.type() == CV_8UC3); - - vector chs; - split(img.clone(), chs); - - Mat h0, h1, h2; - Histo::calcHistoC1(chs[0], h0); - Histo::calcHistoC1(chs[1], h1); - Histo::calcHistoC1(chs[2], h2); - - histo_vect.clear(); - histo_vect.push_back(h0); - histo_vect.push_back(h1); - histo_vect.push_back(h2); -} - - - -void Histo::drawHistoC1(const cv::Mat histo, cv::Mat& canvas, int channel) { - assert(histo.type() == CV_32S); - - int pad = 10; - canvas = Mat::zeros(200 + 2 * pad, 256 + 2 * pad, CV_8UC3); - - // a hisztogram alatti szurke sav rajzolasa - for (int i = 0; i < 10; ++i) { // 10 pixel vastag lesz, hogy jol latszodjon - for (int j = 0; j < 256; ++j) { - if (0 <= channel && channel <= 2) { - canvas.at(canvas.rows - 1 - i, j + pad)[channel] = j; - } - else { - canvas.at(canvas.rows - 1 - i, j + pad) = Vec3b(j, j, j); - } - } - } - - - Vec3b color(255, 255, 255); - if (0 <= channel && channel <= 2) { - color = Vec3b(0, 0, 0); - color[channel] = 255; - } - - - double minv, maxv; - minMaxLoc(histo, &minv, &maxv); - - double scale = 200 / maxv; // az ablak magassagahoz igazitom a hisztogram magassagat - - // a hisztogram rajzolasa - for (int i = 0; i < 256; ++i) { - // egy oszlop magassage (a line(Point(0, 0), Point(0, 1)) 2 pixelt rajzolna, ezert a -1) - int v = int(histo.at(i) * scale) - 1; - // canvas.rows-2-pad oldja meg, hogy a szurke sav felett kezdjuk a rajzolast - if (v >= 0) - line(canvas, Point(pad + i, canvas.rows - 2 - v - pad), Point(pad + i, canvas.rows - 2 - pad), color); - } -} - - -void Histo::drawHistoC3(const vector histos, vector& canvases) { - assert(histos.size() == 3 && - histos[0].type() == CV_32S && histos[1].type() == CV_32S && histos[2].type() == CV_32S); - - canvases.clear(); - for (int i = 0; i <= 2; ++i) { - Mat canvas; - Histo::drawHistoC1(histos[i], canvas, i); - canvases.push_back(canvas.clone()); - } -} - - -void Histo::showHisto(Mat img, string title, int wait) { - assert(img.type() == CV_8UC1 || img.type() == CV_8UC3); - - if (img.type() == CV_8UC1) { - Mat histo; - Histo::calcHistoC1(img, histo); - - // az ertekek konzolra iratasa - //cout << histo << endl; - - Mat canvas; - Histo::drawHistoC1(histo, canvas); - imshow(title, canvas); - } - else if (img.type() == CV_8UC3) { - vector histos; - Histo::calcHistoC3(img, histos); - - vector canvases; - Histo::drawHistoC3(histos, canvases); - - string str = "BGR"; - for (int i = 0; i <= 2; ++i) { - imshow(title + "-" + str[i], canvases[i]); - } - } - waitKey(wait); -} diff --git a/ora6/proj1/histo.h b/ora6/proj1/histo.h deleted file mode 100644 index 9178101..0000000 --- a/ora6/proj1/histo.h +++ /dev/null @@ -1,32 +0,0 @@ -/* -Kepfeld. gyak. - nehany segedfuggveny az orai anyag konnyebb szemleltetesehez. - 1 es 3 csatornas, csatornankent 8 bites kepekre: - Histo::showHisto(img); -*/ -#ifndef HISTO_H_ -#define HISTO_H_ - -#include -#include - -using namespace std; -using namespace cv; - -namespace Histo { - void calcHistoC1(const cv::Mat img, cv::Mat& histo); - void calcHistoC3(const cv::Mat img, vector& histo); - - void drawHistoC1(const cv::Mat histo, cv::Mat& canvas, int channel = -1); - void drawHistoC3(const vector histos, vector& canvases); - - /// - /// Egy kep hisztogramjanak megjelenitese. - /// - /// 1 vagy 3 csatornas input kep - /// ablaknev - /// varakoztatas - void showHisto(Mat img, string title = "histo", int wait = 0); -}; - - -#endif HISTO_H_ diff --git a/ora6/proj1/main.cpp b/ora6/proj1/main.cpp deleted file mode 100644 index 5013886..0000000 --- a/ora6/proj1/main.cpp +++ /dev/null @@ -1,67 +0,0 @@ -#include "histo.h" -#include "opencv2/imgcodecs.hpp" -#include -#include -#include -#include - -using namespace cv; - -void Roberts(const Mat& img){ - Mat g, gx, gy, g2, edge, edge2; - gx = Mat::zeros(img.size(), CV_16S); - gy = Mat::zeros(img.size(), CV_16S); - - for (int i = 0; i < img.rows -1; i++) { - for (int j = 0; j < img.cols -1; j++) { - gx.at(i,j) = img.at(i,j) - img.at(i+1, j+1); - gy.at(i,j) = img.at(i,j+1) - img.at(i+1, j); - } - } - - g = cv::abs(gx) + cv::abs(gy); - - convertScaleAbs(g, g2); - - threshold(g2, edge, 0, 255, THRESH_OTSU); - threshold(g2, edge2, 0, 255, THRESH_TRIANGLE); - - imshow("edge", edge); - imshow("edg2", edge2); - - //imshow("g", g * 255); - //imshow("gx", gx * 255); - //imshow("gy", gy * 255); -} - -void sobel(const Mat img){ - Mat g, g2, gx, gy; - - Sobel(img, gx, CV_32F, 1,0); - Sobel(img, gy, CV_32F, 0,1); - - - //g = cv::abs(gx) + cv::abs(gy); - //cv::sqrt(gx.mul(gx) + gy.mul(gy)); - convertScaleAbs(g, g2); - //imshow("gx", gx / 255); - //imshow("gx", gy / 255); - //imshow("g2", g2); - - Mat dest; - Laplacian(img, dest, CV_16S, 3); - convertScaleAbs(dest, dest); - imshow("dest", dest); - - waitKey(0); -} - -int main(){ - Mat img = imread("../go2.png", IMREAD_GRAYSCALE); - imshow("ered", img); - //Roberts(img); - sobel(img); - - while(waitKey(3) != 'q'); - return 0; -} diff --git a/ora6/proj2/Makefile b/ora6/proj2/Makefile deleted file mode 100644 index a350518..0000000 --- a/ora6/proj2/Makefile +++ /dev/null @@ -1,18 +0,0 @@ -CXX = g++ -CXXFLAGS = -Wall -O2 `pkg-config --cflags opencv4` -LIBS = `pkg-config --libs opencv4` - -SRC = $(wildcard *.cpp) -OBJ = $(SRC:.cpp=.o) -TARGET = main - -all: $(TARGET) - -$(TARGET): $(OBJ) - $(CXX) $(OBJ) -o $@ $(LIBS) - -%.o: %.cpp - $(CXX) $(CXXFLAGS) -c $< -o $@ - -clean: - rm -f $(OBJ) $(TARGET) diff --git a/ora6/proj2/histo.cpp b/ora6/proj2/histo.cpp deleted file mode 100644 index 42352bc..0000000 --- a/ora6/proj2/histo.cpp +++ /dev/null @@ -1,126 +0,0 @@ -/* -Kepfeld. gyak. - nehany segedfuggveny az orai anyag konnyebb szemleltetesehez. -*/ - -#include -#include -#include -#include -#include "histo.h" - -using namespace std; -using namespace cv; - -void Histo::calcHistoC1(const cv::Mat img, cv::Mat& histo) { - assert(img.type() == CV_8UC1); - - // CV_32U nem letezik, ha de CV_16U-t (ushort) hasznalhatsz, ha akarsz. - histo = Mat::zeros(256, 1, CV_32S); - for (int i = 0; i < img.rows; i++) - for (int j = 0; j < img.cols; j++) - histo.at(img.at(i, j))++; -} - - -void Histo::calcHistoC3(const cv::Mat img, vector& histo_vect) { - assert(img.type() == CV_8UC3); - - vector chs; - split(img.clone(), chs); - - Mat h0, h1, h2; - Histo::calcHistoC1(chs[0], h0); - Histo::calcHistoC1(chs[1], h1); - Histo::calcHistoC1(chs[2], h2); - - histo_vect.clear(); - histo_vect.push_back(h0); - histo_vect.push_back(h1); - histo_vect.push_back(h2); -} - - - -void Histo::drawHistoC1(const cv::Mat histo, cv::Mat& canvas, int channel) { - assert(histo.type() == CV_32S); - - int pad = 10; - canvas = Mat::zeros(200 + 2 * pad, 256 + 2 * pad, CV_8UC3); - - // a hisztogram alatti szurke sav rajzolasa - for (int i = 0; i < 10; ++i) { // 10 pixel vastag lesz, hogy jol latszodjon - for (int j = 0; j < 256; ++j) { - if (0 <= channel && channel <= 2) { - canvas.at(canvas.rows - 1 - i, j + pad)[channel] = j; - } - else { - canvas.at(canvas.rows - 1 - i, j + pad) = Vec3b(j, j, j); - } - } - } - - - Vec3b color(255, 255, 255); - if (0 <= channel && channel <= 2) { - color = Vec3b(0, 0, 0); - color[channel] = 255; - } - - - double minv, maxv; - minMaxLoc(histo, &minv, &maxv); - - double scale = 200 / maxv; // az ablak magassagahoz igazitom a hisztogram magassagat - - // a hisztogram rajzolasa - for (int i = 0; i < 256; ++i) { - // egy oszlop magassage (a line(Point(0, 0), Point(0, 1)) 2 pixelt rajzolna, ezert a -1) - int v = int(histo.at(i) * scale) - 1; - // canvas.rows-2-pad oldja meg, hogy a szurke sav felett kezdjuk a rajzolast - if (v >= 0) - line(canvas, Point(pad + i, canvas.rows - 2 - v - pad), Point(pad + i, canvas.rows - 2 - pad), color); - } -} - - -void Histo::drawHistoC3(const vector histos, vector& canvases) { - assert(histos.size() == 3 && - histos[0].type() == CV_32S && histos[1].type() == CV_32S && histos[2].type() == CV_32S); - - canvases.clear(); - for (int i = 0; i <= 2; ++i) { - Mat canvas; - Histo::drawHistoC1(histos[i], canvas, i); - canvases.push_back(canvas.clone()); - } -} - - -void Histo::showHisto(Mat img, string title, int wait) { - assert(img.type() == CV_8UC1 || img.type() == CV_8UC3); - - if (img.type() == CV_8UC1) { - Mat histo; - Histo::calcHistoC1(img, histo); - - // az ertekek konzolra iratasa - //cout << histo << endl; - - Mat canvas; - Histo::drawHistoC1(histo, canvas); - imshow(title, canvas); - } - else if (img.type() == CV_8UC3) { - vector histos; - Histo::calcHistoC3(img, histos); - - vector canvases; - Histo::drawHistoC3(histos, canvases); - - string str = "BGR"; - for (int i = 0; i <= 2; ++i) { - imshow(title + "-" + str[i], canvases[i]); - } - } - waitKey(wait); -} diff --git a/ora6/proj2/histo.h b/ora6/proj2/histo.h deleted file mode 100644 index 9178101..0000000 --- a/ora6/proj2/histo.h +++ /dev/null @@ -1,32 +0,0 @@ -/* -Kepfeld. gyak. - nehany segedfuggveny az orai anyag konnyebb szemleltetesehez. - 1 es 3 csatornas, csatornankent 8 bites kepekre: - Histo::showHisto(img); -*/ -#ifndef HISTO_H_ -#define HISTO_H_ - -#include -#include - -using namespace std; -using namespace cv; - -namespace Histo { - void calcHistoC1(const cv::Mat img, cv::Mat& histo); - void calcHistoC3(const cv::Mat img, vector& histo); - - void drawHistoC1(const cv::Mat histo, cv::Mat& canvas, int channel = -1); - void drawHistoC3(const vector histos, vector& canvases); - - /// - /// Egy kep hisztogramjanak megjelenitese. - /// - /// 1 vagy 3 csatornas input kep - /// ablaknev - /// varakoztatas - void showHisto(Mat img, string title = "histo", int wait = 0); -}; - - -#endif HISTO_H_ diff --git a/ora6/proj2/main.cpp b/ora6/proj2/main.cpp deleted file mode 100644 index e071fe0..0000000 --- a/ora6/proj2/main.cpp +++ /dev/null @@ -1,14 +0,0 @@ -#include "histo.h" -#include -#include -#include -#include - -using namespace cv; - -int main(){ - - - waitKey(); - return 0; -} diff --git a/ora6/proj3/.clangd b/ora6/proj3/.clangd deleted file mode 100644 index 5f1474c..0000000 --- a/ora6/proj3/.clangd +++ /dev/null @@ -1,2 +0,0 @@ -CompileFlags: - Add: [-I/usr/include/opencv4, -std=c++17] diff --git a/ora6/proj3/Makefile b/ora6/proj3/Makefile deleted file mode 100644 index a350518..0000000 --- a/ora6/proj3/Makefile +++ /dev/null @@ -1,18 +0,0 @@ -CXX = g++ -CXXFLAGS = -Wall -O2 `pkg-config --cflags opencv4` -LIBS = `pkg-config --libs opencv4` - -SRC = $(wildcard *.cpp) -OBJ = $(SRC:.cpp=.o) -TARGET = main - -all: $(TARGET) - -$(TARGET): $(OBJ) - $(CXX) $(OBJ) -o $@ $(LIBS) - -%.o: %.cpp - $(CXX) $(CXXFLAGS) -c $< -o $@ - -clean: - rm -f $(OBJ) $(TARGET) diff --git a/ora6/proj3/histo.cpp b/ora6/proj3/histo.cpp deleted file mode 100644 index 42352bc..0000000 --- a/ora6/proj3/histo.cpp +++ /dev/null @@ -1,126 +0,0 @@ -/* -Kepfeld. gyak. - nehany segedfuggveny az orai anyag konnyebb szemleltetesehez. -*/ - -#include -#include -#include -#include -#include "histo.h" - -using namespace std; -using namespace cv; - -void Histo::calcHistoC1(const cv::Mat img, cv::Mat& histo) { - assert(img.type() == CV_8UC1); - - // CV_32U nem letezik, ha de CV_16U-t (ushort) hasznalhatsz, ha akarsz. - histo = Mat::zeros(256, 1, CV_32S); - for (int i = 0; i < img.rows; i++) - for (int j = 0; j < img.cols; j++) - histo.at(img.at(i, j))++; -} - - -void Histo::calcHistoC3(const cv::Mat img, vector& histo_vect) { - assert(img.type() == CV_8UC3); - - vector chs; - split(img.clone(), chs); - - Mat h0, h1, h2; - Histo::calcHistoC1(chs[0], h0); - Histo::calcHistoC1(chs[1], h1); - Histo::calcHistoC1(chs[2], h2); - - histo_vect.clear(); - histo_vect.push_back(h0); - histo_vect.push_back(h1); - histo_vect.push_back(h2); -} - - - -void Histo::drawHistoC1(const cv::Mat histo, cv::Mat& canvas, int channel) { - assert(histo.type() == CV_32S); - - int pad = 10; - canvas = Mat::zeros(200 + 2 * pad, 256 + 2 * pad, CV_8UC3); - - // a hisztogram alatti szurke sav rajzolasa - for (int i = 0; i < 10; ++i) { // 10 pixel vastag lesz, hogy jol latszodjon - for (int j = 0; j < 256; ++j) { - if (0 <= channel && channel <= 2) { - canvas.at(canvas.rows - 1 - i, j + pad)[channel] = j; - } - else { - canvas.at(canvas.rows - 1 - i, j + pad) = Vec3b(j, j, j); - } - } - } - - - Vec3b color(255, 255, 255); - if (0 <= channel && channel <= 2) { - color = Vec3b(0, 0, 0); - color[channel] = 255; - } - - - double minv, maxv; - minMaxLoc(histo, &minv, &maxv); - - double scale = 200 / maxv; // az ablak magassagahoz igazitom a hisztogram magassagat - - // a hisztogram rajzolasa - for (int i = 0; i < 256; ++i) { - // egy oszlop magassage (a line(Point(0, 0), Point(0, 1)) 2 pixelt rajzolna, ezert a -1) - int v = int(histo.at(i) * scale) - 1; - // canvas.rows-2-pad oldja meg, hogy a szurke sav felett kezdjuk a rajzolast - if (v >= 0) - line(canvas, Point(pad + i, canvas.rows - 2 - v - pad), Point(pad + i, canvas.rows - 2 - pad), color); - } -} - - -void Histo::drawHistoC3(const vector histos, vector& canvases) { - assert(histos.size() == 3 && - histos[0].type() == CV_32S && histos[1].type() == CV_32S && histos[2].type() == CV_32S); - - canvases.clear(); - for (int i = 0; i <= 2; ++i) { - Mat canvas; - Histo::drawHistoC1(histos[i], canvas, i); - canvases.push_back(canvas.clone()); - } -} - - -void Histo::showHisto(Mat img, string title, int wait) { - assert(img.type() == CV_8UC1 || img.type() == CV_8UC3); - - if (img.type() == CV_8UC1) { - Mat histo; - Histo::calcHistoC1(img, histo); - - // az ertekek konzolra iratasa - //cout << histo << endl; - - Mat canvas; - Histo::drawHistoC1(histo, canvas); - imshow(title, canvas); - } - else if (img.type() == CV_8UC3) { - vector histos; - Histo::calcHistoC3(img, histos); - - vector canvases; - Histo::drawHistoC3(histos, canvases); - - string str = "BGR"; - for (int i = 0; i <= 2; ++i) { - imshow(title + "-" + str[i], canvases[i]); - } - } - waitKey(wait); -} diff --git a/ora6/proj3/histo.h b/ora6/proj3/histo.h deleted file mode 100644 index 9178101..0000000 --- a/ora6/proj3/histo.h +++ /dev/null @@ -1,32 +0,0 @@ -/* -Kepfeld. gyak. - nehany segedfuggveny az orai anyag konnyebb szemleltetesehez. - 1 es 3 csatornas, csatornankent 8 bites kepekre: - Histo::showHisto(img); -*/ -#ifndef HISTO_H_ -#define HISTO_H_ - -#include -#include - -using namespace std; -using namespace cv; - -namespace Histo { - void calcHistoC1(const cv::Mat img, cv::Mat& histo); - void calcHistoC3(const cv::Mat img, vector& histo); - - void drawHistoC1(const cv::Mat histo, cv::Mat& canvas, int channel = -1); - void drawHistoC3(const vector histos, vector& canvases); - - /// - /// Egy kep hisztogramjanak megjelenitese. - /// - /// 1 vagy 3 csatornas input kep - /// ablaknev - /// varakoztatas - void showHisto(Mat img, string title = "histo", int wait = 0); -}; - - -#endif HISTO_H_ diff --git a/ora6/proj3/main.cpp b/ora6/proj3/main.cpp deleted file mode 100644 index d20cd44..0000000 --- a/ora6/proj3/main.cpp +++ /dev/null @@ -1,26 +0,0 @@ -#include "histo.h" -#include -#include -#include -#include - -using namespace cv; - -int main(){ - Mat img = imread("dark_img.jpg", IMREAD_GRAYSCALE); - imshow("img", img); - Histo::showHisto(img); - - double ah, fh; - minMaxLoc(img, &ah, &fh); - - fh = 30; - - Mat dest = (ah == fh) ? img.clone() : (img-ah) * 255 / (fh-ah); - - imshow("dest", dest); - Histo::showHisto(dest, "eredmeny"); - - waitKey(); - return 0; -} diff --git a/ora6/proj4/.clangd b/ora6/proj4/.clangd deleted file mode 100644 index 5f1474c..0000000 --- a/ora6/proj4/.clangd +++ /dev/null @@ -1,2 +0,0 @@ -CompileFlags: - Add: [-I/usr/include/opencv4, -std=c++17] diff --git a/ora6/proj4/Makefile b/ora6/proj4/Makefile deleted file mode 100644 index a350518..0000000 --- a/ora6/proj4/Makefile +++ /dev/null @@ -1,18 +0,0 @@ -CXX = g++ -CXXFLAGS = -Wall -O2 `pkg-config --cflags opencv4` -LIBS = `pkg-config --libs opencv4` - -SRC = $(wildcard *.cpp) -OBJ = $(SRC:.cpp=.o) -TARGET = main - -all: $(TARGET) - -$(TARGET): $(OBJ) - $(CXX) $(OBJ) -o $@ $(LIBS) - -%.o: %.cpp - $(CXX) $(CXXFLAGS) -c $< -o $@ - -clean: - rm -f $(OBJ) $(TARGET) diff --git a/ora6/proj4/histo.cpp b/ora6/proj4/histo.cpp deleted file mode 100644 index 42352bc..0000000 --- a/ora6/proj4/histo.cpp +++ /dev/null @@ -1,126 +0,0 @@ -/* -Kepfeld. gyak. - nehany segedfuggveny az orai anyag konnyebb szemleltetesehez. -*/ - -#include -#include -#include -#include -#include "histo.h" - -using namespace std; -using namespace cv; - -void Histo::calcHistoC1(const cv::Mat img, cv::Mat& histo) { - assert(img.type() == CV_8UC1); - - // CV_32U nem letezik, ha de CV_16U-t (ushort) hasznalhatsz, ha akarsz. - histo = Mat::zeros(256, 1, CV_32S); - for (int i = 0; i < img.rows; i++) - for (int j = 0; j < img.cols; j++) - histo.at(img.at(i, j))++; -} - - -void Histo::calcHistoC3(const cv::Mat img, vector& histo_vect) { - assert(img.type() == CV_8UC3); - - vector chs; - split(img.clone(), chs); - - Mat h0, h1, h2; - Histo::calcHistoC1(chs[0], h0); - Histo::calcHistoC1(chs[1], h1); - Histo::calcHistoC1(chs[2], h2); - - histo_vect.clear(); - histo_vect.push_back(h0); - histo_vect.push_back(h1); - histo_vect.push_back(h2); -} - - - -void Histo::drawHistoC1(const cv::Mat histo, cv::Mat& canvas, int channel) { - assert(histo.type() == CV_32S); - - int pad = 10; - canvas = Mat::zeros(200 + 2 * pad, 256 + 2 * pad, CV_8UC3); - - // a hisztogram alatti szurke sav rajzolasa - for (int i = 0; i < 10; ++i) { // 10 pixel vastag lesz, hogy jol latszodjon - for (int j = 0; j < 256; ++j) { - if (0 <= channel && channel <= 2) { - canvas.at(canvas.rows - 1 - i, j + pad)[channel] = j; - } - else { - canvas.at(canvas.rows - 1 - i, j + pad) = Vec3b(j, j, j); - } - } - } - - - Vec3b color(255, 255, 255); - if (0 <= channel && channel <= 2) { - color = Vec3b(0, 0, 0); - color[channel] = 255; - } - - - double minv, maxv; - minMaxLoc(histo, &minv, &maxv); - - double scale = 200 / maxv; // az ablak magassagahoz igazitom a hisztogram magassagat - - // a hisztogram rajzolasa - for (int i = 0; i < 256; ++i) { - // egy oszlop magassage (a line(Point(0, 0), Point(0, 1)) 2 pixelt rajzolna, ezert a -1) - int v = int(histo.at(i) * scale) - 1; - // canvas.rows-2-pad oldja meg, hogy a szurke sav felett kezdjuk a rajzolast - if (v >= 0) - line(canvas, Point(pad + i, canvas.rows - 2 - v - pad), Point(pad + i, canvas.rows - 2 - pad), color); - } -} - - -void Histo::drawHistoC3(const vector histos, vector& canvases) { - assert(histos.size() == 3 && - histos[0].type() == CV_32S && histos[1].type() == CV_32S && histos[2].type() == CV_32S); - - canvases.clear(); - for (int i = 0; i <= 2; ++i) { - Mat canvas; - Histo::drawHistoC1(histos[i], canvas, i); - canvases.push_back(canvas.clone()); - } -} - - -void Histo::showHisto(Mat img, string title, int wait) { - assert(img.type() == CV_8UC1 || img.type() == CV_8UC3); - - if (img.type() == CV_8UC1) { - Mat histo; - Histo::calcHistoC1(img, histo); - - // az ertekek konzolra iratasa - //cout << histo << endl; - - Mat canvas; - Histo::drawHistoC1(histo, canvas); - imshow(title, canvas); - } - else if (img.type() == CV_8UC3) { - vector histos; - Histo::calcHistoC3(img, histos); - - vector canvases; - Histo::drawHistoC3(histos, canvases); - - string str = "BGR"; - for (int i = 0; i <= 2; ++i) { - imshow(title + "-" + str[i], canvases[i]); - } - } - waitKey(wait); -} diff --git a/ora6/proj4/histo.h b/ora6/proj4/histo.h deleted file mode 100644 index 9178101..0000000 --- a/ora6/proj4/histo.h +++ /dev/null @@ -1,32 +0,0 @@ -/* -Kepfeld. gyak. - nehany segedfuggveny az orai anyag konnyebb szemleltetesehez. - 1 es 3 csatornas, csatornankent 8 bites kepekre: - Histo::showHisto(img); -*/ -#ifndef HISTO_H_ -#define HISTO_H_ - -#include -#include - -using namespace std; -using namespace cv; - -namespace Histo { - void calcHistoC1(const cv::Mat img, cv::Mat& histo); - void calcHistoC3(const cv::Mat img, vector& histo); - - void drawHistoC1(const cv::Mat histo, cv::Mat& canvas, int channel = -1); - void drawHistoC3(const vector histos, vector& canvases); - - /// - /// Egy kep hisztogramjanak megjelenitese. - /// - /// 1 vagy 3 csatornas input kep - /// ablaknev - /// varakoztatas - void showHisto(Mat img, string title = "histo", int wait = 0); -}; - - -#endif HISTO_H_ diff --git a/ora6/proj4/main.cpp b/ora6/proj4/main.cpp deleted file mode 100644 index d20cd44..0000000 --- a/ora6/proj4/main.cpp +++ /dev/null @@ -1,26 +0,0 @@ -#include "histo.h" -#include -#include -#include -#include - -using namespace cv; - -int main(){ - Mat img = imread("dark_img.jpg", IMREAD_GRAYSCALE); - imshow("img", img); - Histo::showHisto(img); - - double ah, fh; - minMaxLoc(img, &ah, &fh); - - fh = 30; - - Mat dest = (ah == fh) ? img.clone() : (img-ah) * 255 / (fh-ah); - - imshow("dest", dest); - Histo::showHisto(dest, "eredmeny"); - - waitKey(); - return 0; -} diff --git a/ora6/road.png b/ora6/road.png deleted file mode 100644 index b129600..0000000 Binary files a/ora6/road.png and /dev/null differ diff --git a/ora6/sajt.png b/ora6/sajt.png deleted file mode 100644 index d6bc1fa..0000000 Binary files a/ora6/sajt.png and /dev/null differ diff --git a/ora6/sajt_keskeny_keret.png b/ora6/sajt_keskeny_keret.png deleted file mode 100644 index bdd248a..0000000 Binary files a/ora6/sajt_keskeny_keret.png and /dev/null differ diff --git a/ora6/smarties.jpg b/ora6/smarties.jpg deleted file mode 100644 index a7f2d30..0000000 Binary files a/ora6/smarties.jpg and /dev/null differ diff --git a/ora6/swiss_cheese.jpg b/ora6/swiss_cheese.jpg deleted file mode 100644 index dc71b02..0000000 Binary files a/ora6/swiss_cheese.jpg and /dev/null differ diff --git a/ora6/szitakoto.jpg b/ora6/szitakoto.jpg deleted file mode 100644 index c6e16ef..0000000 Binary files a/ora6/szitakoto.jpg and /dev/null differ diff --git a/ora6/wrench.jpg b/ora6/wrench.jpg deleted file mode 100644 index 02b6821..0000000 Binary files a/ora6/wrench.jpg and /dev/null differ