mirror of https://github.com/opencv/opencv.git
parent
bc18fb481f
commit
18bc4db75c
5 changed files with 132 additions and 10 deletions
@ -0,0 +1,58 @@ |
||||
import org.opencv.core.*; |
||||
import org.opencv.highgui.HighGui; |
||||
import org.opencv.imgproc.Imgproc; |
||||
|
||||
class HitMissRun{ |
||||
|
||||
public void run() { |
||||
Mat input_image = new Mat( 8, 8, CvType.CV_8UC1 ); |
||||
int row = 0, col = 0; |
||||
input_image.put(row ,col, |
||||
0, 0, 0, 0, 0, 0, 0, 0, |
||||
0, 255, 255, 255, 0, 0, 0, 255, |
||||
0, 255, 255, 255, 0, 0, 0, 0, |
||||
0, 255, 255, 255, 0, 255, 0, 0, |
||||
0, 0, 255, 0, 0, 0, 0, 0, |
||||
0, 0, 255, 0, 0, 255, 255, 0, |
||||
0, 255, 0, 255, 0, 0, 255, 0, |
||||
0, 255, 255, 255, 0, 0, 0, 0); |
||||
|
||||
Mat kernel = new Mat( 3, 3, CvType.CV_16S ); |
||||
kernel.put(row ,col, |
||||
0, 1, 0, |
||||
1, -1, 1, |
||||
0, 1, 0 ); |
||||
|
||||
Mat output_image = new Mat(); |
||||
Imgproc.morphologyEx(input_image, output_image, Imgproc.MORPH_HITMISS, kernel); |
||||
|
||||
int rate = 50; |
||||
Core.add(kernel, new Scalar(1), kernel); |
||||
Core.multiply(kernel, new Scalar(127), kernel); |
||||
kernel.convertTo(kernel, CvType.CV_8U); |
||||
|
||||
Imgproc.resize(kernel, kernel, new Size(), rate, rate, Imgproc.INTER_NEAREST); |
||||
HighGui.imshow("kernel", kernel); |
||||
HighGui.moveWindow("kernel", 0, 0); |
||||
|
||||
Imgproc.resize(input_image, input_image, new Size(), rate, rate, Imgproc.INTER_NEAREST); |
||||
HighGui.imshow("Original", input_image); |
||||
HighGui.moveWindow("Original", 0, 200); |
||||
|
||||
Imgproc.resize(output_image, output_image, new Size(), rate, rate, Imgproc.INTER_NEAREST); |
||||
HighGui.imshow("Hit or Miss", output_image); |
||||
HighGui.moveWindow("Hit or Miss", 500, 200); |
||||
|
||||
HighGui.waitKey(0); |
||||
System.exit(0); |
||||
} |
||||
} |
||||
|
||||
public class HitMiss |
||||
{ |
||||
public static void main(String[] args) { |
||||
// load the native OpenCV library
|
||||
System.loadLibrary(Core.NATIVE_LIBRARY_NAME); |
||||
new HitMissRun().run(); |
||||
} |
||||
} |
@ -0,0 +1,38 @@ |
||||
import cv2 |
||||
import numpy as np |
||||
|
||||
input_image = np.array(( |
||||
[0, 0, 0, 0, 0, 0, 0, 0], |
||||
[0, 255, 255, 255, 0, 0, 0, 255], |
||||
[0, 255, 255, 255, 0, 0, 0, 0], |
||||
[0, 255, 255, 255, 0, 255, 0, 0], |
||||
[0, 0, 255, 0, 0, 0, 0, 0], |
||||
[0, 0, 255, 0, 0, 255, 255, 0], |
||||
[0,255, 0, 255, 0, 0, 255, 0], |
||||
[0, 255, 255, 255, 0, 0, 0, 0]), dtype="uint8") |
||||
|
||||
kernel = np.array(( |
||||
[0, 1, 0], |
||||
[1, -1, 1], |
||||
[0, 1, 0]), dtype="int") |
||||
|
||||
output_image = cv2.morphologyEx(input_image, cv2.MORPH_HITMISS, kernel) |
||||
|
||||
rate = 50 |
||||
kernel = (kernel + 1) * 127 |
||||
kernel = np.uint8(kernel) |
||||
|
||||
kernel = cv2.resize(kernel, None, fx = rate, fy = rate, interpolation = cv2.INTER_NEAREST) |
||||
cv2.imshow("kernel", kernel) |
||||
cv2.moveWindow("kernel", 0, 0) |
||||
|
||||
input_image = cv2.resize(input_image, None, fx = rate, fy = rate, interpolation = cv2.INTER_NEAREST) |
||||
cv2.imshow("Original", input_image) |
||||
cv2.moveWindow("Original", 0, 200) |
||||
|
||||
output_image = cv2.resize(output_image, None , fx = rate, fy = rate, interpolation = cv2.INTER_NEAREST) |
||||
cv2.imshow("Hit or Miss", output_image) |
||||
cv2.moveWindow("Hit or Miss", 500, 200) |
||||
|
||||
cv2.waitKey(0) |
||||
cv2.destroyAllWindows() |
Loading…
Reference in new issue