Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 사진수정
- ultrasonic
- 열심히 하자
- 포인터란
- 거리 측정 회로
- 머신러닝
- 신경망
- 코딩
- 비지도학습
- orcad
- 초음파 회로
- 전기의 기본 성질
- 이미지 처리
- 첫 수업에서 배운 내용
- 앰보싱
- 머신러닝 기초
- 딥러닝
- 2차배열
- svm
- 지도학습
- 고민이 많다...
- c++
- 포인터
- 주저리 주저리
- 동적할당
- 포인터 쓰는 이유
- 화소점
- 2차 배열 코드
- 전류
- C언어
Archives
- Today
- Total
매일공부
이미지 처리 본문
#define _CRT_SECURE_NO_WARNINGS
using namespace std; // C++ 추가기능
#include <string>
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
//선언부
const int ROW = 8, COL = 8;//행과 열 변수 선언
unsigned char m_image[ROW][COL];//8*8의 2차 배열 선언
void printImage() {
// 2*2배열을 출력한다.
for (int i = 0; i < ROW; i++) {
for (int k = 0; k < COL; k++) {
printf("%3d ", m_image[i][k]);
}
printf("\n");
}
printf("\n");
}//2차 배열을 출력하는 부분
int main() {
// 이미지 배열을 초기화 시키기
for (int i = 0; i < ROW; i++)
for (int k = 0; k < COL; k++)
m_image[i][k] = 0;//배열을 전부 0으로 초기화 시킨다.
// 이미지 파일 --> 배열 Loading
unsigned char pixel; // 이미지의 한 점의 값 (0~255)
srand(time(NULL)); // 랜덤 초기화
//pixel 이라는 2차 배열에 숫자들을 집어 넣어줌
for (int i = 0; i < ROW; i++)
for (int k = 0; k < COL; k++) {
pixel = rand() % 256; // 랜덤은 아무 숫자나 들어가지만 256으로 나누어 몫을 취함으로서 0~255까지의 숫자만 pixel에 들어간다.
m_image[i][k] = pixel;
}//배열에 0~ 255까지의 랜덤 숫자를 집어 넣는다.
printImage();
//////// 영상 처리 ///////////
/// (1) 영상을 밝게 처리 --> 값을 증가 (50)
int value = 50;//증가할 값
for (int i = 0; i < ROW; i++) {
for (int k = 0; k < COL; k++) {
int px = m_image[i][k] + value;//각 값에 50을 더한다.
//이때 우리가 선언한 unsigned char은 255 이상의 숫자를 출력할 수 없다.
if (px > 255)
m_image[i][k] = 255;
else
m_image[i][k] += value;
}
}
// 이미지를 화면 출력
// 2*2배열을 출력한다.
for (int i = 0; i < ROW; i++) {
for (int k = 0; k < COL; k++) {
printf("%3d ", m_image[i][k]);
}
printf("\n");
}
printf("\n");
//-100
int mavalue = 100;
for (int i = 0; i < ROW; i++) {
for (int k = 0; k < COL; k++) {
int px = m_image[i][k] - mavalue;
if (px < 0)
m_image[i][k] = 0;
else
m_image[i][k] -= mavalue;
}
}
// 이미지를 화면 출력
printImage();
//반전하기///////////////////////////////////////////////////
////////////////////////////////////////////////////
int banvalue = 255;
for (int i = 0; i < ROW; i++) {
for (int k = 0; k < COL; k++) {
m_image[i][k]=255- m_image[i][k];
}
}
// 이미지를 화면 출력
printImage();
///////////흑백처리/////////////////////
///////////흑백처리/////////////////////
///////////흑백처리/////////////////////
int bvalue = 128;
for (int i = 0; i < ROW; i++) {
for (int k = 0; k < COL; k++) {
int px1 = m_image[i][k] - bvalue;
if (px1 >= 0)
m_image[i][k] = 255;
else
m_image[i][k] = 0;
}
}
// 이미지를 화면 출력
printImage();
///////////좌우/////////////////////
///////////좌우/////////////////////
///////////좌우/////////////////////
for (int i = 0; i < ROW; i++) {
for (int k = 0; k < COL; k++) {
printf("%3d ", m_image[i][COL-1-k]);
}
printf("\n");
}
printf("\n");
///////////상하/////////////////////
///////////상하/////////////////////
///////////상하/////////////////////
for (int i = 0; i < ROW; i++) {
for (int k = 0; k < COL; k++) {
printf("%3d ", m_image[COL-1-i][k]);
}
printf("\n");
}
printf("\n");
printImage();
}
'임베디드 개발자 > 코딩' 카테고리의 다른 글
C언어 기반 영상처리 프로젝트 (1) | 2022.02.05 |
---|---|
포인터_포인터와 배열 (0) | 2022.01.25 |
포인터/배열 (0) | 2022.01.19 |
1월 18일 간단한 코드 연습과 서식/연산자 (0) | 2022.01.19 |
간단한 컴퓨터 설명 _1월 17일 (0) | 2022.01.17 |