01/10/2018, 16:05

Tách biên với toán tử la bàn 8 hướng krisch


hello
Mình thử tìm biên với toán tử la bàn theo công thức

Với toán tử la bàn 8 hướng krisch

Nhưng khi mình thử thì ma trận tổng của 8 ma trận kết quả = 0, không biết thế nào mà lại trùng hợp đến vậy
Ma trận ảnh ban đầu nhân chập với ma trận nhận chập vẫn cho ra kết quả đúng, nhưng tổng 8 ma trận này = 0
Ví dụ: GRAY là ma trận ảnh, SUMA là ma trận kết quả tổng khởi tạo, SUMB là ma trận tổng, SUMC là ma trân sau khi tách ngưỡng kết quả
Từ SUM0…SUM7 là tổng ma trận kết quả của từng lần nhân chập
Từ DES0…DES7 là kết quả từng lần nhân chập
Từ KERNEL0…KERNEL7 là các kernel nhân chập
Mình dùng công thức nhân chập mà kết quả biến đổi nằm ở góc trên bến trái, các phần tử mở rộng gán bằng hằng số 0, với origin của kernel ở giữa,

> GRAY
> [<<] Output matrix:
> Save: (R,G,B) | Output: (R,G,B)
> Row: 6
> Col: 6
>     1     2     4     5     8     7
>     2    31     1     4     2     2
>     4     5     5     8     8     2
>     1     2     1     1     4     4
>     7     2     2     1     5     2
>     7     2     2     1     5     2

> SUMA
> [<<] Output matrix:
> Save: (R,G,B) | Output: (R,G,B)
> Row: 6
> Col: 6
>     0     0     0     0     0     0
>     0     0     0     0     0     0
>     0     0     0     0     0     0
>     0     0     0     0     0     0
>     0     0     0     0     0     0
>     0     0     0     0     0     0

> KERNEL0
> [<<] Output matrix:
> Save: (R,G,B) | Output: (R,G,B)
> Row: 3
> Col: 3
>     5     5    -3
>     5     0    -3
>    -3    -3    -3
> DES0
> [<<] Output matrix:
> Save: (R,G,B) | Output: (R,G,B)
> Row: 6
> Col: 6
>  -105  -109  -113   -25   -20    28
>  -121   -32   104   -43     4    55
>  -107   155   137     2    31    36
>   -28    -1    18    10    43    49
>   -34     8     4   -31   -12    44
>    23    68    24    -5    23    60

> SUM0
> [<<] Output matrix:
> Save: (R,G,B) | Output: (R,G,B)
> Row: 6
> Col: 6
>  -105  -109  -113   -25   -20    28
>  -121   -32   104   -43     4    55
>  -107   155   137     2    31    36
>   -28    -1    18    10    43    49
>   -34     8     4   -31   -12    44
>    23    68    24    -5    23    60

> KERNEL1
> [<<] Output matrix:
> Save: (R,G,B) | Output: (R,G,B)
> Row: 3
> Col: 3
>     5     5     5
>    -3     0    -3
>    -3    -3    -3
> DES1
> [<<] Output matrix:
> Save: (R,G,B) | Output: (R,G,B)
> Row: 6
> Col: 6
>  -105  -117  -129   -57   -60   -36
>  -105   -16  -104    13    28    39
>   141   131   129   -22   -17   -28
>    12    31    66    66    51    17
>   -18   -40    -4   -15    12     4
>    39    28    16    19    31    20

> SUM1
> [<<] Output matrix:
> Save: (R,G,B) | Output: (R,G,B)
> Row: 6
> Col: 6
>  -210  -226  -242   -82   -80    -8
>  -226   -48     0   -30    32    94
>    34   286   266   -20    14     8
>   -16    30    84    76    94    66
>   -52   -32     0   -46     0    48
>    62    96    40    14    54    80

> KERNEL2
> [<<] Output matrix:
> Save: (R,G,B) | Output: (R,G,B)
> Row: 3
> Col: 3
>    -3     5     5
>    -3     0     5
>    -3    -3    -3
> DES2
> [<<] Output matrix:
> Save: (R,G,B) | Output: (R,G,B)
> Row: 6
> Col: 6
>   -89   -85   -89     7    -4   -36
>   143   -16   -88    -3     4   -25
>   181   155   -55    34   -33   -44
>    28     7    34    58    19   -47
>    -2   -32   -12    17    20   -28
>    55   -12     8    43    39   -20

> SUM2
> [<<] Output matrix:
> Save: (R,G,B) | Output: (R,G,B)
> Row: 6
> Col: 6
>  -299  -311  -331   -75   -84   -44
>   -83   -64   -88   -33    36    69
>   215   441   211    14   -19   -36
>    12    37   118   134   113    19
>   -54   -64   -12   -29    20    20
>   117    84    48    57    93    60

> KERNEL3
> [<<] Output matrix:
> Save: (R,G,B) | Output: (R,G,B)
> Row: 3
> Col: 3
>    -3    -3     5
>    -3     0     5
>    -3    -3     5
> DES3
> [<<] Output matrix:
> Save: (R,G,B) | Output: (R,G,B)
> Row: 6
> Col: 6
>   159   -77   -57    23    12   -36
>   175     8   -56    21   -44   -81
>   181   -85   -55    34   -17   -60
>    12   -17     2    34   -29   -63
>     6   -32   -12    49     4   -60
>    -1   -28    -8    35    -1   -36

> SUM3
> [<<] Output matrix:
> Save: (R,G,B) | Output: (R,G,B)
> Row: 6
> Col: 6
>  -140  -388  -388   -52   -72   -80
>    92   -56  -144   -12    -8   -12
>   396   356   156    48   -36   -96
>    24    20   120   168    84   -44
>   -48   -96   -24    20    24   -40
>   116    56    40    92    92    24

> KERNEL4
> [<<] Output matrix:
> Save: (R,G,B) | Output: (R,G,B)
> Row: 3
> Col: 3
>    -3    -3    -3
>    -3     0     5
>    -3     5     5
> DES4
> [<<] Output matrix:
> Save: (R,G,B) | Output: (R,G,B)
> Row: 6
> Col: 6
>   175   171   -49    55    28   -20
>   191    16   -56    21   -36   -65
>   -59   -77   -79    26    -1   -28
>    28   -41   -46   -22    -5   -47
>    46   -24    -4    25    12   -44
>   -17   -44   -16    -5   -17   -36

> SUM4
> [<<] Output matrix:
> Save: (R,G,B) | Output: (R,G,B)
> Row: 6
> Col: 6
>    35  -217  -437     3   -44  -100
>   283   -40  -200     9   -44   -77
>   337   279    77    74   -37  -124
>    52   -21    74   146    79   -91
>    -2  -120   -28    45    36   -84
>    99    12    24    87    75   -12

> KERNEL5
> [<<] Output matrix:
> Save: (R,G,B) | Output: (R,G,B)
> Row: 3
> Col: 3
>    -3    -3    -3
>    -3     0    -3
>     5     5     5
> DES5
> [<<] Output matrix:
> Save: (R,G,B) | Output: (R,G,B)
> Row: 6
> Col: 6
>   159   155   159    -1     4    -4
>   -57    40   -48    45    12    -1
>   -99  -109  -127   -30    -9     4
>    12     7   -38   -38   -29    -7
>    30    16     4     1     4    -4
>   -33   -60   -24   -45   -33   -36

> SUM5
> [<<] Output matrix:
> Save: (R,G,B) | Output: (R,G,B)
> Row: 6
> Col: 6
>   194   -62  -278     2   -40  -104
>   226     0  -248    54   -32   -78
>   238   170   -50    44   -46  -120
>    64   -14    36   108    50   -98
>    28  -104   -24    46    40   -88
>    66   -48     0    42    42   -48

> KERNEL6
> [<<] Output matrix:
> Save: (R,G,B) | Output: (R,G,B)
> Row: 3
> Col: 3
>    -3    -3    -3
>     5     0    -3
>     5     5    -3
> DES6
> [<<] Output matrix:
> Save: (R,G,B) | Output: (R,G,B)
> Row: 6
> Col: 6
>   -89   155   143    15    28    60
>   -97    16   136   -11    28    15
>  -115   -85   -95   -22    23    68
>    -4    -1   -30   -70   -37    25
>    14    56    12   -23    -4    36
>   -33    -4    -8   -29   -25     4

> SUM6
> [<<] Output matrix:
> Save: (R,G,B) | Output: (R,G,B)
> Row: 6
> Col: 6
>   105    93  -135    17   -12   -44
>   129    16  -112    43    -4   -63
>   123    85  -145    22   -23   -52
>    60   -15     6    38    13   -73
>    42   -48   -12    23    36   -52
>    33   -52    -8    13    17   -44

> KERNEL7
> [<<] Output matrix:
> Save: (R,G,B) | Output: (R,G,B)
> Row: 3
> Col: 3
>     5    -3    -3
>     5     0    -3
>     5    -3    -3
> DES7
> [<<] Output matrix:
> Save: (R,G,B) | Output: (R,G,B)
> Row: 6
> Col: 6
>  -105   -93   135   -17    12    44
>  -129   -16   112   -43     4    63
>  -123   -85   145   -22    23    52
>   -60    15    -6   -38   -13    73
>   -42    48    12   -23   -36    52
>   -33    52     8   -13   -17    44

> SUM7
> [<<] Output matrix:
> Save: (R,G,B) | Output: (R,G,B)
> Row: 6
> Col: 6
>     0     0     0     0     0     0
>     0     0     0     0     0     0
>     0     0     0     0     0     0
>     0     0     0     0     0     0
>     0     0     0     0     0     0
>     0     0     0     0     0     0

> SUM B
> [<<] Output matrix:
> Save: (R,G,B) | Output: (R,G,B)
> Row: 6
> Col: 6
>     0     0     0     0     0     0
>     0     0     0     0     0     0
>     0     0     0     0     0     0
>     0     0     0     0     0     0
>     0     0     0     0     0     0
>     0     0     0     0     0     0

> SUM C
> [<<] Output matrix:
> Save: (R,G,B) | Output: (R,G,B)
> Row: 6
> Col: 6
>   255   255   255   255   255   255
>   255   255   255   255   255   255
>   255   255   255   255   255   255
>   255   255   255   255   255   255
>   255   255   255   255   255   255
>   255   255   255   255   255   255

> ^CTerminate batch job (Y/N)? y

Còn đây là ví dụ trên ảnh










tkank you

Tao Không Ngu. viết 18:14 ngày 01/10/2018

Hi HelloWorld.

  1. Mình không rõ mục đích của bài viết là gì.
  2. Theo kiến thức của mình thì phép tích chập khác phép nhân ma trận nên thứ tự cộng nhân và nhân với tổng cho ra kết quả khác nhau. Kernel trong phép tích chập cho thấy mức độ ảnh hưởng của các pĩel xung quanh với pĩel giữa. Bạn có thể thấy H1 làm rõ đường theo hướng “” dâu của con con trùng, và H3 , H7 theo hướng “/” nên các phần đó bị là tối đi. Nếu bạn cộng hết vào thì múc độ các hướng là như nhau túc là không có gì đặc biệt cả.

https://homepages.inf.ed.ac.uk/rbf/HIPR2/linedet.htm

HelloWorld viết 18:09 ngày 01/10/2018

Nhưng khi mình thử thì ma trận tổng của 8 ma trận kết quả = 0, không biết thế nào mà lại trùng hợp đến vậy
Ma trận ảnh ban đầu nhân với ma trận nhận chập vẫn cho ra kết quả đúng, nhưng tổng 8 ma trận này = 0

  1. Mình có nêu rõ vấn đề ở trên mà
  2. ở trên mình thực hiện phép nhân chập đó, mình viết thiếu có 1 chỗ mà, có chỗ mình vẫn viết có chữ chập đó
HelloWorld viết 18:12 ngày 01/10/2018

Nếu bạn cộng hết vào thì múc độ các hướng là như nhau túc là không có gì đặc biệt cả.

Mình đang thắc mắc là tại sao cộng lại thì tổng = 0, còn 8 ma trận của toán tử là các hướng
0,45,90,135,180,225,270,315 độ. Kernel là các ma trận xấp xỉ đạo hàm theo 8 hướng để, dể khảo sát các điểm và cường độ biên thiên của các pixel thay đổi giá trị (biên)
Thuật toán

anon45952904 viết 18:20 ngày 01/10/2018

Mình đang thắc mắc là tại sao cộng lại thì tổng = 0

5x3 + (-3)x5. Ko bằng 0 thì biết bằng mấy đây!

HelloWorld viết 18:08 ngày 01/10/2018

Mình hỏi là tại sao cộng lại = 0 trong khi thuật toán nêu như thế. Thuật toán là do người ta nghĩ ra chứ mình có nghĩa đâu, Còn kết quả + lại = 0 (cộng số học) thì ở trên mình đã đưa ra ví dụ số, nên mình biết nó = 0 rồi.
Chốt lại là mình k hỏi kết quả = 0 về cộng số học, mà mình hỏi ý nghĩa của nó và nó khác với những gì thuật toán mô tả

Bài liên quan
0