-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path3.7.cpp
More file actions
59 lines (39 loc) · 1.54 KB
/
3.7.cpp
File metadata and controls
59 lines (39 loc) · 1.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
// Part2.cpp : Этот файл содержит функцию "main". Здесь начинается и заканчивается выполнение программы.
//
#include <iostream>
#include <cxcore.h>
#include <_highgui.h>
int main()
{
// упражнение 3.7
IplImage* Picture = cvLoadImage("../Part3/picture/88.png");
IplImage* PictureR = cvCreateImage(cvGetSize(Picture), IPL_DEPTH_8U, 1);
IplImage* PictureG = cvCreateImage(cvGetSize(Picture), IPL_DEPTH_8U, 1);
IplImage* PictureB = cvCreateImage(cvGetSize(Picture), IPL_DEPTH_8U, 1);
cvSplit(Picture, PictureR, PictureG, PictureB, 0);
// упражнение 3.7.a
cvNamedWindow("Picture", 1);
cvShowImage("Picture", PictureG);
cvWaitKey(0);
cvDestroyWindow("Picture");
// упражнение 3.7.б
IplImage* clone1 = cvCloneImage(PictureG);
IplImage* clone2 = cvCloneImage(PictureG);
// упражнение 3.7.c
double* maximum = new double();
double* minimum = new double();
cvMinMaxLoc(PictureG, minimum, maximum);
// упражнение 3.7.d
int thresh = (int)((maximum - minimum) / 2.0);
cvSet(clone1, cvScalarAll(thresh));
// упражнение 3.7.e
cvSet(clone2, cvScalarAll(0));
cvCmp(PictureG, clone1, clone2, CV_CMP_GE);
// упражнение 3.7.f
cvSubS(PictureG, cvScalarAll(thresh / 2), PictureG, clone2);
cvNamedWindow("Picture", 1);
cvShowImage("Picture", PictureG);
cvWaitKey(0);
cvDestroyWindow("Picture");
getchar();
}