Difference between revisions of "KIAS primer"

From Cinemachines
(Created page with "== Basic Image Processing == === Displaying an Image === for( int y = 0; y < h; y++ ) { for( int x = 0; x < w; x++ ) { dist.at<Vec3b>(y,x)[0] = sources[1].at<Vec3b>(y,x)[0]...")
 
 
(7 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
== Basic Image Processing ==
 
== Basic Image Processing ==
 
=== Displaying an Image ===
 
=== Displaying an Image ===
for( int y = 0; y < h; y++ ) {
+
<nowiki>for( int y = 0; y < h; y++ ) {
 
for( int x = 0; x < w; x++ ) {
 
for( int x = 0; x < w; x++ ) {
 
dist.at<Vec3b>(y,x)[0] = sources[1].at<Vec3b>(y,x)[0];
 
dist.at<Vec3b>(y,x)[0] = sources[1].at<Vec3b>(y,x)[0];
Line 7: Line 7:
 
dist.at<Vec3b>(y,x)[2] = sources[1].at<Vec3b>(y,x)[2];
 
dist.at<Vec3b>(y,x)[2] = sources[1].at<Vec3b>(y,x)[2];
 
}
 
}
}
+
}</nowiki>
  
 
where h = screen height, w = screen width and sources[1] = input
 
where h = screen height, w = screen width and sources[1] = input
 +
 +
=== Flip image ===
 +
'''Vertical flip'''
 +
<nowiki>for( int y = 0; y < h; y++ ) {
 +
for( int x = 0; x < w; x++ ) {
 +
dist.at<Vec3b>(y,x)[0] = sources[1].at<Vec3b>(y,(w-x))[0];
 +
dist.at<Vec3b>(y,x)[1] = sources[1].at<Vec3b>(y,(w-x))[1];
 +
dist.at<Vec3b>(y,x)[2] = sources[1].at<Vec3b>(y,(w-x))[2];
 +
}
 +
}</nowiki>
 +
 +
'''Horisontal flip'''
 +
<nowiki>for( int y = 0; y < h; y++ ) {
 +
for( int x = 0; x < w; x++ ) {
 +
dist.at<Vec3b>(y,x)[0] = sources[1].at<Vec3b>((h-y),x)[0];
 +
dist.at<Vec3b>(y,x)[1] = sources[1].at<Vec3b>((h-y),x)[1];
 +
dist.at<Vec3b>(y,x)[2] = sources[1].at<Vec3b>((h-y),x)[2];
 +
}
 +
}</nowiki>
 +
 +
'''Combined vertical-horisontal flip'''
 +
<nowiki>for( int y = 0; y < h; y++ ) {
 +
for( int x = 0; x < w; x++ ) {
 +
dist.at<Vec3b>(y,x)[0] = sources[1].at<Vec3b>((h-y),(w-x))[0];
 +
dist.at<Vec3b>(y,x)[1] = sources[1].at<Vec3b>((h-y),(w-x))[1];
 +
dist.at<Vec3b>(y,x)[2] = sources[1].at<Vec3b>((h-y),(w-x))[2];
 +
}
 +
}</nowiki>
 +
 +
=== Repeat image ===
 +
'''Horisontal repeat'''
 +
<nowiki>for( int y = 0; y < h; y++ ) {
 +
for( int x = 0; x < w; x++ ) {
 +
dist.at<Vec3b>(y,x)[0] = sources[1].at<Vec3b>((y),(x+x))[0];
 +
dist.at<Vec3b>(y,x)[1] = sources[1].at<Vec3b>((y),(x+x))[1];
 +
dist.at<Vec3b>(y,x)[2] = sources[1].at<Vec3b>((y),(x+x))[2];
 +
}
 +
}</nowiki>

Latest revision as of 11:26, 27 October 2019

Basic Image Processing

Displaying an Image

for( int y = 0; y < h; y++ ) {
	for( int x = 0; x < w; x++ ) {
		dist.at<Vec3b>(y,x)[0] = sources[1].at<Vec3b>(y,x)[0];
		dist.at<Vec3b>(y,x)[1] = sources[1].at<Vec3b>(y,x)[1];
		dist.at<Vec3b>(y,x)[2] = sources[1].at<Vec3b>(y,x)[2];
	}
}

where h = screen height, w = screen width and sources[1] = input

Flip image

Vertical flip

for( int y = 0; y < h; y++ ) {
	for( int x = 0; x < w; x++ ) {
		dist.at<Vec3b>(y,x)[0] = sources[1].at<Vec3b>(y,(w-x))[0];
		dist.at<Vec3b>(y,x)[1] = sources[1].at<Vec3b>(y,(w-x))[1];
		dist.at<Vec3b>(y,x)[2] = sources[1].at<Vec3b>(y,(w-x))[2];
	}
}

Horisontal flip

for( int y = 0; y < h; y++ ) {
	for( int x = 0; x < w; x++ ) {
		dist.at<Vec3b>(y,x)[0] = sources[1].at<Vec3b>((h-y),x)[0];
		dist.at<Vec3b>(y,x)[1] = sources[1].at<Vec3b>((h-y),x)[1];
		dist.at<Vec3b>(y,x)[2] = sources[1].at<Vec3b>((h-y),x)[2];
	}
}

Combined vertical-horisontal flip

for( int y = 0; y < h; y++ ) {
	for( int x = 0; x < w; x++ ) {
		dist.at<Vec3b>(y,x)[0] = sources[1].at<Vec3b>((h-y),(w-x))[0];
		dist.at<Vec3b>(y,x)[1] = sources[1].at<Vec3b>((h-y),(w-x))[1];
		dist.at<Vec3b>(y,x)[2] = sources[1].at<Vec3b>((h-y),(w-x))[2];
	}
}

Repeat image

Horisontal repeat

for( int y = 0; y < h; y++ ) {
	for( int x = 0; x < w; x++ ) {
		dist.at<Vec3b>(y,x)[0] = sources[1].at<Vec3b>((y),(x+x))[0];
		dist.at<Vec3b>(y,x)[1] = sources[1].at<Vec3b>((y),(x+x))[1];
		dist.at<Vec3b>(y,x)[2] = sources[1].at<Vec3b>((y),(x+x))[2];
	}
}