목록전체 글 (24)
어제보다 나은 내가 되자
#include using namespace std; using namespace cv; void on_threshold(int pos, void* userdata) { Mat src = *(Mat*)userdata; Mat dst; threshold(src, dst, pos, 255, THRESH_BINARY); imshow("dst", dst); } int main(int argc, char* argv[]) { Mat src; src = imread("neutrophils.png", IMREAD_GRAYSCALE); imshow("src", src); namedWindow("dst"); createTrackbar("Threshold", "dst", 0, 255, on_threshold, (void*)..
#include using namespace std; using namespace cv; int main() { Mat src, src_ycrcb, mask; src = imread("kyeong.jpg"); mask = imread("mask.jpg",IMREAD_GRAYSCALE); cvtColor(src, src_ycrcb, COLOR_BGR2YCrCb); // BGR to YCrCb in src_ycrcb Mat hist; int channels[] = { 1,2 }; int histSize[] = { 128,128 }; float cr_range[] = { 0,256 }; float cb_range[] = { 0,256 }; const float* ranges[] = { cr_range,cb_r..
#include using namespace std; using namespace cv; //int lower_hue = 40, upper_hue = 80; int lower_hue, upper_hue; Mat src, src_hsv, mask; void on_hue_changed(int, void*) { Scalar lowerb(lower_hue, 100, 0); Scalar upperb(upper_hue, 255, 255); inRange(src_hsv, lowerb, upperb, mask); // R 160~179 // G 40~80 // B 100~140 imshow("mask", mask); } int main(int argc, char* argv[]) { src = imread("candie..
#include using namespace std; using namespace cv; int main() { Mat src = imread("../image/pepper.bmp"); Mat src_ycrcb; cvtColor(src, src_ycrcb, COLOR_BGR2YCrCb);// BRG->YCrCb 후 src_ycrcb에 저장 vector ycrcb_planes; split(src_ycrcb, ycrcb_planes);// 채널 분리 equalizeHist(ycrcb_planes[0], ycrcb_planes[0]); Mat dst_ycrcb; merge(ycrcb_planes, dst_ycrcb);// 분리한 채널 병합 Mat dst; cvtColor(dst_ycrcb, dst, COLOR..
#include using namespace std; using namespace cv; int main() { Mat src = imread("candies.png"); // 컬러영상으로 불러옴 vector bgr_planes; // Mat 자료형의 vector 생성 split(src, bgr_planes); // 입력 영상 분리해서 vecotr에 넣음 Mat dst; merge(bgr_planes, dst); // 분리된 영상 합치기 imshow("src", src); imshow("B_plane", bgr_planes[0]); imshow("G_plane", bgr_planes[1]); imshow("R_plane", bgr_planes[2]); imshow("Merge", dst); waitKey..
#include using namespace cv; using namespace std; int main() { Mat src = imread("../image/apple.jpg", IMREAD_COLOR); //Mat dst(src.rows, src.cols, src.type()); Mat dst = Scalar(255, 255, 255) - src; /*for (int j = 0; j < src.rows; j++) { for (int i = 0; i < src.cols; i++) { Vec3b& p1 = src.at(j, i); Vec3b& p2 = src.at(j, i); p2[0] = 255 - p1[0]; p2[1] = 255 - p1[1]; p2[2] = 255 - p1[2]; } }*/ im..
OpenCV에서 말하는 영상은 정지된 영상을 의미한다! OpenCV를 통해 생성된 영상은 Ctril+S를 눌러서 파일의 형태로 저장 가능하다. 따로 저장이 가능한지 생각을 못했고 과제할 때 캡쳐로만해서 기록해둔다..
1. JPG(Joint Photograph Experts Group) 컬러 영상을 사용한다. 손실 압축기법이다. - 미세한 것은 날려버리기 때문에 복원하는 경우 원본과 차이가 발생한다.(픽셀값이 변경된다.) 파일 용량이 크게 감소한다. 2. BMP(Bitmap) 파일 구조가 간단하다. 파일을 압축하지 않은 상태로 저장한다. 파일 용량이 크다. 파일 입출력이 빠르다. 3. GIF(Graphics Interchange Format) 최대 256색까지 저장가능하다. 무손실 압축기법이다.(픽셀 값이 변경되지 않는다.) 움직이는 그림 Animation GIF를 지원하기때문에 컴퓨터 비전 분야에서는 잘 사용되지 않는다. 4. PNG(Portable Network Graphics) 컬러 영상, 그레이스케일 영상 모두..